문제 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 코드 My answer import sys input=sys.stdin.readline from itertools import combinations, permutations n, m=map(int,input().split()) num=list(map(int,input().split())) case=list(combinations(num,3)) case=[sum(i) for i in case if(sum(i)
코딩테스트/백준[Python]
백준 파이썬 코딩테스트 문제 풀이문제 3568번: iSharp 입력으로 주어진 변수 선언문을 문제의 조건에 맞게 변형한 뒤, 한 줄에 하나씩 출력한다. 변수형과 변수명 사이에는 공백이 하나 있어야 한다. 출력은 입력으로 주어진 변수 선언문에서 변수가 www.acmicpc.net 코드 My answer import sys input=sys.stdin.readline command=list(input().split()) for i in command: flag=0 if(i==command[0]): continue i=i[:-1] for j in range(len(i)): if(i[j].isalpha()==1): for k in range(j+1,len(i)): if(i[k].isalpha()==0): flag=1 break if(flag=..
문제 1495번: 기타리스트 첫째 줄에 N, S, M이 주어진다. (1 ≤ N ≤ 50, 1 ≤ M ≤ 1,000, 0 ≤ S ≤ M) 둘째 줄에는 각 곡이 시작하기 전에 줄 수 있는 볼륨의 차이가 주어진다. 이 값은 1보다 크거나 같고, M보다 작거나 같다. www.acmicpc.net 코드 My answer(완전탐색-메모리초과) import sys input=sys.stdin.readline n,s,m=map(int,input().split()) v=list(map(int,input().split())) dp=[[s]] for i in range(1,n+1): tmp=[] for j in dp[i-1]: if(j+v[i-1]=0): tmp.append(j-v[i-1]) if(tmp==[]): prin..
문제 15989번: 1, 2, 3 더하기 4 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 4가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다. 1+1+1+1 2+1+1 (1+1+2, 1+2+1) 2+2 www.acmicpc.net 코드 My answer import sys input=sys.stdin.readline num,test=[1,2,3],[] t=int(input()) for i in range(t): test.append(int(input())) dp=[0 for i in range(max(test)+1)] dp[0]=1 for i in range(len(num)): for j in range(0,max(test..
문제 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주 www.acmicpc.net 코드 Another answer import sys r = sys.stdin.readline N, K = map(int, r().split()) coins = sorted([int(r()) for _ in range(N)]) dp = [10001] * (K+1) dp[0] = 0 for i in range(N): for j in range(coins[i], K+1): dp[j] = min(dp[j], dp[j-coins[i]]..
문제 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 코드 My answer import sys from itertools import combinations input=sys.stdin.readline n,k=map(int,input().split()) coin=[] dp=[1]+[0 for i in range(k)] for i in range(n): coin.append(int(input())) for i in range(len(coin)): for j in range(0,k+1): if(j-coin[i]>..