목록baekjoon (solved.ac) (50)
Hikenny25
https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net - 구현 import sys input = sys.stdin.readline n,m = map(int, input().split()) d,a = dict(), list() for _ in range(n+m): i = input()[:-1] try: d[i] += 1 if d[i] == 2: a.append(i) except: d[i] = 1 a.sort() print(len(a)) for i i..
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()) a = list() for _ in range(n): a.append(input()[:-1]) for _ in range(m): i = input()[:-1] if i.isdigit(): print(a[int(i)-1]) else: p..
https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net - 구현 import sys input = sys.stdin.readline n = int(input()) k = 1 for i in range(1, n+1): k *= i cnt = 0 while k > 0: if k % 10 == 0: cnt += 1 k //= 10 else: break print(cnt) 그냥 팩토리얼 구하고 10씩 나누면서 구하면 된다
https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net - 구현 - 비트마스킹 import sys input = sys.stdin.readline m = int(input()) s = set() for _ in range(m): c = input().split() if c[0] == 'add': s.add(c[1]) elif c[0] == 'remove': try: s.remove(c[1]) except: pass elif c[0] == 'check': print(1 if c[1] in..
https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net import sys input = sys.stdin.readline def funcdp(i): dp = [0] * (i+3) dp[1] = 1 dp[2] = 2 dp[3] = 4 if i
https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net import sys input = sys.stdin.readline def fibo_count(v): dp = [0,0] * (v+1) dp[0] = [1,0] dp[1] = [0,1] if v
https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net import sys input = sys.stdin.readline n, m = map(int, input().split()) a = list(map(int, input().split())) def check(x): s = 0 for i in range(n): k = a[i] - x if k > 0: s += k return True if s >= m els..
https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net import sys input = sys.stdin.readline klen, n = map(int, input().split()) k = list() for _ in range(klen): k.append(int(input())) def check(x): s = 0 for i in range(klen): s += (k[i] // x) if s >= n: return ..
https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) var1 = n // 5 var2 = n % 5 if not var2: print(var1) else: while True: if (n-5*var1) % 3 == 0: print(var1 + (n-5*var1)//3) break else: var1 -= 1 if var1 == -1: print(-1) break..