본문 바로가기
반응형

Problem Solving/BOJ225

[BOJ][Python]11047번 풀이 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net n,k = map(int, input().split()) c = [int(input()) for _ in range(n)] c.append(100000001) cnt = 0 while k != 0: for i in range(n+1): if c[i] 2022. 6. 5.
[BOJ][Python]15489번 풀이 https://www.acmicpc.net/problem/15489 15489번: 파스칼 삼각형 첫째 줄에 양의 정수 R, C, W가 공백을 한 칸씩 두고 차례로 주어진다. (단, 2 ≤ R+W ≤ 30, 2 ≤ C+W ≤ 30, 1 ≤ W ≤ 29, C ≤ R) www.acmicpc.net t = [[0 for _ in range(31)] for _ in range(31)] t[1][1] = 1 for i in range(2,31): for j in range(1,31): t[i][j] = t[i-1][j-1] + t[i-1][j] r,c,w = map(int, input().split()) answer = 0 for i in range(w): for j in range(i+1): answer += t.. 2022. 6. 4.
[BOJ][Python]17219번 풀이 https://www.acmicpc.net/problem/17219 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net import sys input = sys.stdin.readline n,m = map(int, input().split()) d = {} for _ in range(n): a,b = map(str, input().rstrip().split()) d[a] = b for _ in range(m): print(d[input().rstrip()]) 전혀 다를 것 없는 해시 .. 2022. 6. 4.
[BOJ][Python]16395번 풀이 https://www.acmicpc.net/problem/16395 16395번: 파스칼의 삼각형 파스칼의 삼각형은 이항계수를 삼각형 형태로 배열한 것인데, 블레즈 파스칼(1623-1662)을 따라 이름 붙여졌다. 단순한 형태로, 파스칼의 삼각형은 다음과 같은 방법으로 만들 수 있다. N번째 행 www.acmicpc.net t = [[0 for _ in range(31)] for _ in range(31)] t[1][1] = 1 for i in range(2,31): for j in range(1,31): t[i][j] = t[i-1][j-1] + t[i-1][j] n,k = map(int, input().split()) print(t[n][k]) 예전에 이항 계수 문제를 dp가 아닌 방법으로 풀었던 적.. 2022. 6. 3.
[BOJ][Python]1764번 풀이 https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net import sys ssr = sys.stdin.readline n,m = map(int, ssr().split()) d = {ssr():i for i in range(n)} name = [] for _ in range(m): a = ssr() if a in d.keys(): name.append(a.rstrip()) print(len(name)) name.sort() for i in range.. 2022. 6. 3.
[BOJ][Python]14916번 풀이 https://www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net t = [-1 for _ in range(100001)] t[2],t[4],t[5],t[6],t[7],t[8] = 1,2,1,3,2,4 for i in range(9,100001): t[i] = min((t[i-2]+t[2]),(t[i-5]+t[5])) print(t[int(input())]) 이번에도 평이한 난이도의 문제입니다만 생각을 어떻게 하는지에 따라 결론에 다다르는 시간이 다를 것 같네요. 일단 가장 적은 갯수의 동전을 반환하기 위해서는 뭐가 됐든 숫자가 늘 때 1개만 늘어나는게 가장 바람직한 일이죠. 따라.. 2022. 6. 2.
[BOJ][Python]1620번 풀이 https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net import sys input = sys.stdin.readline n,m = map(int, input().split()) d = {i:input().rstrip() for i in range(1,n+1)} t = dict(map(reversed, d.items())) for _ in range(m): a = input().rstrip() if not a[0].isd.. 2022. 6. 2.
[BOJ][Python]5089번 정리 https://www.acmicpc.net/problem/5089 5089번: Travelling Salesman Output consists of a single line for each week. It contains the word Week, followed by a space, followed by the week number, the first week being 1, followed by a space, followed by the actual number of towns to be visited, duplicates having been removed. www.acmicpc.net cnt = 0 while 1: cnt += 1 n = int(input()) if n == 0: break t .. 2022. 6. 1.
[BOJ][Python]13301번 풀이 https://www.acmicpc.net/problem/13301 13301번: 타일 장식물 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개 www.acmicpc.net n = int(input()) if n == 1: print(4) else: t = [0 for _ in range(81)] t[0],t[1] = 1,1 for i in range(2,81): t[i] = t[i-1]+t[i-2] print(2*t[n-1]+2*(t[n-1]+t[n-2])) 그렇게 어려운 문제는 아닙니다. n=1인 경우에 점화식이 적용되지 않는 점을 잊지 마시구요. 피보나치는 정말 .. 2022. 6. 1.
[BOJ][Python]18679번 풀이 https://www.acmicpc.net/problem/18679 18679번: Banana The first line of input will contain a single integer N, the number of words in the dictionary (1 ≤ N ≤ 100). The following N lines will each contain a sentence of the format x = y where x is an English word and y is a Minionese word. The next line wil www.acmicpc.net n = int(input()) dict = {} for _ in range(n): a,b = input().split(' = ') dic.. 2022. 5. 31.
반응형