백준 포인트 카드
[브론즈 2] 백준 14471 - 포인트 카드 (파이썬)
[브론즈 2] 백준 14471 - 포인트 카드 (파이썬)
2025.05.04https://www.acmicpc.net/problem/14471풀이N개의 포인트를 사용하여 M개의 카드를 구매하고 싶다.각 카드에는 (a, b)가 주어지며,a는 현재 모인 포인트 수b는 해당 카드의 포인트 카드 개수카드를 구매하기 위해서는 포인트가 a 이상이어야 한다.카드를 구매하면 b만큼 포인트가 오른다.목표는 총 N개의 포인트를 모으는 최소한의 비용을 계산하는 것.코드# 백준 14471 - 포인트 카드# 분류 : 그리디N, M = map(int, input().split())C = [list(map(int, input().split())) for _ in range(M)]C.sort(reverse=True)cost = 0for i in range(M - 1) : if C[i][0]
[실버 1] 백준 16198 - 에너지 모으기 (파이썬)
[실버 1] 백준 16198 - 에너지 모으기 (파이썬)
2025.04.30https://www.acmicpc.net/problem/16198풀이구슬이 일렬로 놓여 있고, 양끝 구슬을 제외하고 하나를 고를 수 있다.고른 구슬을 제거하면서 얻는 에너지는 (왼쪽 구슬 번호) * (오른쪽 구슬 번호)구슬이 2개 남을때까지 반복얻을 수 있는 에너지의 최대값을 구하라if len(a) == 2: return w구슬이 2개만 남으면 더이상 고를 수 없으니, 지금까지 모은 에너지를 반환한다.재귀 호출은 다음과 같이 진행한다.for i in range(1, len(a) - 1):맨 앞과 맨 뒤 구슬을 제외한 가운데 구슬만 고를 수 있다.na = a[:i] + a[i+1:]i번째 구슬을 제거해서 새로운 리스트를 만든다.tmp = dfs(na, w + a[i-1] * a[i+1])i번째 구슬..