문제 1806번: 부분합 첫째 줄에 N (10 ≤ N =s): answer=i+1 for i in range(n): for j in range(n-i): dp[j..
코딩테스트/백준[Python]
백준 파이썬 코딩테스트 문제 풀이문제 15489번: 파스칼 삼각형 첫째 줄에 양의 정수 R, C, W가 공백을 한 칸씩 두고 차례로 주어진다. (단, 2 ≤ R+W ≤ 30, 2 ≤ C+W ≤ 30, 1 ≤ W ≤ 29, C ≤ R) www.acmicpc.net 코드 My answer import sys input=sys.stdin.readline r,c,w=map(int,input().split()) dp=[] res=0 for i in range(r+w+1): dp.append([0]*(i+1)) for i in range(r+w+1): for j in range(i+1): if(j==0 or j==i): dp[i][j]=1 else: dp[i][j]=dp[i-1][j-1]+dp[i-1][j] for i in range(r-1,r+..
문제 20152번: Game Addiction 첫째 줄에 집과 PC방의 좌표 (H, H), (N, N) 을 나타내는 두 정수 H, N (0 ≤ H, N ≤ 30) 이 차례로 주어진다. www.acmicpc.net 코드 My answer import sys input=sys.stdin.readline h,n=map(int,input().split()) if(n>h): h,n=n,h dp=[] for i in range(h+1): dp.append([0]*(i+1)) for i in range(h,n-1,-1): for j in range(h,n-1,-1): if(i==h): dp[i][j]=1 elif(j>i): continue else: if(i==j): dp[i][j]=dp[i+1][j] else: d..
문제 17212번: 달나라 토끼를 위한 구매대금 지불 도우미 달나라 토끼들이 사용하는 화폐는 동전뿐이다. 동전의 종류는 1원, 2원, 5원, 7원 이렇게 4종류가 있다. 물건을 사고 동전으로 계산을 하는데 동전의 개수가 최소가 되도록 지불하지 않는 것은 www.acmicpc.net 코드 My answer import sys input=sys.stdin.readline n=int(input()) dp=[0 for i in range(n+1)] for i in range(1,n+1): if(i>=7): dp[i]=min(dp[i-1],dp[i-2],dp[i-5],dp[i-7])+1 elif(i>=5): dp[i]=min(dp[i-1],dp[i-2],dp[i-5])+1 elif(i>=2): dp[i]=min(..
문제 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 코드 My answer import sys input=sys.stdin.readline n=int(input()) dp=[0,1] for i in range(2,n+1): dp.append(dp[i-2]+dp[i-1]) print(dp[n]) Another answer a,b=1,0 for _ in range(int(input())):a,b=b,a+b print(b) 풀이 예전에도 한번 푼 것 같다.ㅇㅅㅇ
문제 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 코드 My answer import sys input = sys.stdin.readline n=int(input()) dp=[-1]*(n+1) sugar=[3, 5] for i in range(3,n+1): if(i==3 or i==5):dp[i]=1 for j in sugar: if(dp[i-j]!=-1): if(dp[i]==-1):dp[i]=dp[i-j]+1 else:dp[i]=min(dp[i-j]+1,dp[i]) print(dp[n]) Another answer..