본문 바로가기

반응형

Algorithm_BOJ(백준)/그리디(Greedy Algorithm)

(20)
[백준 12845 c++] 모두의 마블 문제 링크 www.acmicpc.net/problem/12845 문제 접근 // 접근: 그리디는 눈치챈 다음 최대를 구하는 것이므로 최대값이 가장 많이 중복이 되어야 한다고 생각 문제 풀이 // 풀이: 결국 더하는 과정의 결과값은 처음에 최대값에서 시작하면 최댓값은 n-2번 더하고 나머지 총 합을 더하면 최대값 주의 개념 # 개념: 리스트 입력하면서 2차원 리스트 만들기 lst = [list(map(int,input().split())) for _ in range(n)] 소스코드 #define _CRT_SECURE_NO_WARNINGS #include #include // c 문법 헤더파일 #include // c++ 문자열 클래스 #include // 동적배열 라이브러리 #include #include..
[백준 1946 python파이썬] 신입 사원 문제 링크 www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 문제 접근 // 접근: 한 테스트에 대해 이중반복 완점탐색으로 신입사원의 수를 하려 했으나 시간초과 // 접근2: 서류점수에 대해 정렬을 시키면 뒤에등수에 있는 사람은 면접점수가 앞에 있는 사람보다 무조건 앞의 등수여야됨 문제 풀이 // 풀이: 벡터에 페어형을 이용해 점수를 한번에 저장 // 정렬시키고 면접점수에 대해 기준 검사 주의 개념 # 개념: 리스트 입력하면서 2차원 리스..
[백준 1946 c++] 신입 사원 문제 링크 www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 문제 접근 // 접근: 한 테스트에 대해 이중반복 완점탐색으로 신입사원의 수를 하려 했으나 시간초과 // 접근2: 서류점수에 대해 정렬을 시키면 뒤에등수에 있는 사람은 면접점수가 앞에 있는 사람보다 무조건 앞의 등수여야됨 문제 풀이 // 풀이: 벡터에 페어형을 이용해 점수를 한번에 저장 // 정렬시키고 면접점수에 대해 기준 검사 주의 개념 소스코드 #define _CRT_SECU..
[백준 2839 python파이썬] 설탕 배달 문제 링크 www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 접근 // 접근: 3과5로 의 합이 n이 되는 최소의 경우 -> 그리디 // 제일큰 5킬로봉지 최대개수에서 하나씩 빼면서 나누어지는지 검사 문제 풀이 // 풀이: 제일큰 5킬로봉지 최대개수에서 하나씩 빼면서 나누어지는지 검사 주의 개념 소스코드 # 주의: 파이썬 나눈 몫의 정수값 // 계속 헷갈림 n = int(input()) fori in range(n//5,-1,-1): tp = n cnt = i # ..
[백준 2839 c++] 설탕 배달 문제 링크 www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 접근 // 접근: 3과5로 의 합이 n이 되는 최소의 경우 -> 그리디 // 제일큰 5킬로봉지 최대개수에서 하나씩 빼면서 나누어지는지 검사 문제 풀이 // 풀이: 제일큰 5킬로봉지 최대개수에서 하나씩 빼면서 나누어지는지 검사 주의 개념 소스코드 #define _CRT_SECURE_NO_WARNINGS #include #include // c 문법 헤더파일 #include // c++ 문자열 클래스 #inc..
[백준 2810 c++] 컵홀더 문제 링크 www.acmicpc.net/problem/2810 2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 문제 접근 // 접근: 컴홀더를 사용하는 사람의 최대 수 문제 풀이 // 풀이: S일때와 L일때의 컴홀더 새는 방법을 알아내고 사람은 컴홀더보다 많을 수 없으므로 컴홀더와 사람수중 작은값 출력 주의 개념 소스코드 #define _CRT_SECURE_NO_WARNINGS #include #include // c 문법 헤더파일 #include // c++ 문자열 클래스 #include // 동적배열 라이브러리 #include #include #include // sort와 unique 사용 #inclu..
[백준 4796 python파이썬] 캠핑 문제 링크 www.acmicpc.net/problem/4796 4796번: 캠핑 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다. www.acmicpc.net 문제 접근 // 접근: 최대의 캠핑 이용 -> 최대가 되는 경우를 찾아보자 -> 그리디 문제 풀이 // 풀이: 최대이용 날 = (휴가 / 캠핑운영)*캠핑이용 + 나머지 이용 가능한 날(2가지 경우) 주의 개념 소스코드 # 주의: 나눈 몫의 정수값은 // # 주의: 출력할 때 \n 하면 틀림 i=0 while True: i+=1 l,p,v = map(int,input().split()) ifl =..
[백준 4796 c++] 캠핑 문제 링크 www.acmicpc.net/problem/4796 4796번: 캠핑 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다. www.acmicpc.net 문제 접근 // 접근: 최대의 캠핑 이용 -> 최대가 되는 경우를 찾아보자 -> 그리디 문제 풀이 // 풀이: 최대이용 날 = (휴가 / 캠핑운영)*캠핑이용 + 나머지 이용 가능한 날(2가지 경우) 주의 개념 // 개념: 합을 일일이 구할 수도 있지만 accumulate(v.begin(), v.end(), 합 초기값); 으로 구할 수 있음 소스코드 #define _CRT_SECURE_NO_WAR..

반응형