본문 바로가기

algorithm45

[알고리즘][백준] 15990번 1, 2, 3 더하기 5 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/15990 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 9095번 1, 2, 3 더하기와 같이 점화식을 쉽게 만들 수 있을 줄 알고.. 몇십분째 이리저리 고민해봐도 안나와서 보니... 2차원으로 해결해야했던 문제..! 다른분들 코드를 참고해서 작성했다 import sys t = int(sys.stdin.readline()) dp = list([0, 0, 0] * 10001) # 1, 2, 3으로 끝나는 경우 dp[1] = [1, 0, 0] # 1, X, X dp[2] = [0, 1, 0] # X, 2,.. 2024. 3. 5.
[알고리즘][백준] 16194번 카드 구매하기 2 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/16194 16194번: 카드 구매하기 2 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 11502번 카드 구매하기 번외 문제다! 지난주에 돈을 많이 써서 이번에는 최소금액을 구해야한다ㅋㅋ import sys n = int(sys.stdin.readline()) p = [0] + list(map(int, sys.stdin.readline().split())) dp = [0] * 1001 for i in range(1, n+1): for j in range(1, i+1): if dp[i] .. 2024. 3. 5.
[알고리즘][백준] 11052번 카드 구매하기 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net dp에 카드i장씩 살때 가장 큰 값을 넣으면 된다 점화식으로는 dp[i] = dp[i-j] + p[j] import sys n = int(sys.stdin.readline()) p = [0] + list(map(int, sys.stdin.readline().split())) # [0] + 대신 p.insert(0,0)도 가능 dp = [0] * 1001 for i in range(1, n+1): for .. 2024. 3. 5.
[알고리즘][백준] 9095번 1, 2, 3 더하기 - 파이썬(python) 풀이 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 무슨 규칙이 있나 살펴보니 1 = 1 2 = 2 3 = 4 4 = 7 = 1 + 2 + 4 5 = 13 = 2 + 4 + 7 앞의 세수를 더하면 값이 나온다! 5의 경우 4에서 1더하기 3에서 2더하기 2에서 3더하기 3가지 종류가 있기 때문에 위와 같이 나오게 된다. 코드는 아래와 같다! import sys t = int(sys.stdin.readline()) dp = [0] * 11 dp[1] = 1 dp[2] = 2 dp[3] = 4 for _ in range(t): n = int(sys... 2024. 3. 5.