백준 12865 평범한 배낭 Gold V 문제링크 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 나의 코드 첫 접근은 배낭의 무게와 가치를 tuple에 저장하고, 최대 무게 안에서 존재할 수 있는 여러 물건의 가치의 합을 찾아냈다. Brute Force에 가까운 접근이었기 때문에 여러 반례들을 통과하지 못하고.. 그냥 틀려버렸다 ㅠㅠ 런타임 에러도 아니고 그냥 틀림.. 생각해보니 0-1 문제이기 때문에 당연히 DP로 푸는 것이었다. 그래서 동적..
백준 1932.정수삼각형 Silver I 문제링크 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 나의 코드 이 문제 역시 동적계획법을 통해 풀었다. N개의 list가 주어지는데, 들어오는 list의 한 element마다 그 전의 list의 left, right value 중 더 큰 값을 더해주었다. 마지막 list에서 가장 큰 숫자를 리턴해주면 된다. Index out of range 에러가 뜨지 않기 위해 첫 번째 원소 값과 마지막 원소 값에 대한 조건 처리 역시 해주어야 한다. import sys N = int(sys.stdin.readline()) lsts = [] for ..
문제 백준 11057 오르막수 Silver I python 문제링크 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수 www.acmicpc.net 나의 코드 import sys N = int(sys.stdin.readline()) nums = [1] * 10 for _ in range(N - 1): for i in range(1, 10): nums[i] = (nums[i] + nums[i - 1]) % 10007 print(sum(nums) % 10007) + 런타임을 줄이기 위해 sys.stdin.rea..