
문제 https://www.acmicpc.net/problem/2407 2407번: 조합 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) www.acmicpc.net 접근 방법 import math math.comb(n, m) 위와 같이 구하는 방법도 있고 itertools의 combination을 활용하는 방법도 있겠으나 아래의 기본 식을 이용하여 모듈을 사용하지 않고 계산할 수 있다. 코드 def fact(n): result = 1 for i in range(1, n+1): result *= i return result n, m = map(int, input().split()) print(fact(n)//(fact(n-m)*fact(m))) 풀이 정보 시도 횟수: 1..

문제 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 접근 방법 동전의 가치가 항상 작은 동전의 배수가 되도록 주어지므로 그리디 알고리즘 문제이다. 동전의 가치가 가장 큰 것부터 최대한 사용하는 식으로 세도록 하면 된다. 상세 단순한 예시로 4700원을 1000원, 500원, 100원으로 만드려면 큰 금액부터 최대한 사용하도록 세면 된다. 1000원을 최대한 사용 → 4개, 남은 ..

문제 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 접근 방법 다이나믹 프로그래밍 (동적 계획법) 문제이다. N일째부터 시작했을 때의 최대 이익을 구하고 N-1, N-2, ... 1일째부터 시작했을 때의 최대 이익을 구한다. N-A일째부터 시작했을 때 최대 이익은, N-A+1일째 시작시 최대 이익 vs N-A+T일째 시작시 최대 이익+P 중 최댓값이다. 이때 N+1일째부터는 회사에 없기 때문에 날짜가 N을 넘어서는 안된다. 상세 1일 2일 3일 4일 5일 6일 7일 Ti 3 5 1 1 2 4 2 Pi 10 20 10 20 15 40 200 문제의 예시로 나온 이 표를 예시로 들어..

문제 https://www.acmicpc.net/problem/16719 16719번: ZOAC 2018년 12월, 처음 시작하게 된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 앞 글자부터 하나씩 보여주는 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로 www.acmicpc.net 접근 방법 주어지는 문자열의 길이가 최대 100까지밖에 안되므로, 모든 경우의 수를 다 세는 방식으로 풀이하였다. 현재 문자 상태에서 추가하지 않은 각 문자 하나하나에 대하여 추가해서 후보군을 추리고, 그중에서 문자열이 가장 앞서는 걸 택하고 이를 반복한다. 상세 나는 문자열 target과 각 문자에 대한 선택 여부를 isActivate배열 2개를 두어 풀이하였다. ZOAC를 예시로..