본문 바로가기

코딩테스트/Python

(225)
[Python] 백준 #11723 - 집합 문제 https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 풀이 import sys n = int(input()) s = set() for _ in range(n): arr = sys.stdin.readline().strip().split() if arr[0] == 'add': s.add(int(arr[1])) elif arr[0] == 'remove': try: s.remove(int(arr[1])) except: pass elif arr[0] == 'check': if int(ar..
[Python] 백준 #13458 - 시험 감독 문제 https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 풀이 n = int(input()) arr = map(int,input().split()) b,c = map(int,input().split()) sol = 0 for i in arr: sol +=1 i = i-b if i>0: sol+=i//c if i%c !=0 : sol+=1 print(sol) 총 감독관이 감시할 수 있는 응시자..
[Python] 백준 #1781 - 컵라면 문제 https://www.acmicpc.net/problem/1781 1781번: 컵라면 상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라 www.acmicpc.net 풀이 import heapq import sys n = int(input()) arr = [] for _ in range(n): tmp = list(map(int,sys.stdin.readline().strip().split())) arr.append(tmp) arr = sorted(arr,key=lambda x:x[0]) # 데드라인 기준으로 오름차순 queue = [] for day,count i..
[Python] 백준 #9935 - 문자열 폭발 문제 https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 풀이 ss = input() m = list(input()) stack = [] for i in range(len(ss)): stack.append(ss[i]) # 스택에 하나씩 추가 if stack[-len(m):] == m: # 스택의 마지막이 m 문자열과 같으면 del stack[-len(m):] # 삭제 if stack: print("".join(stack)) else:..
[Python] 백준 #2109 - 순회강연 문제 https://www.acmicpc.net/problem/2109 2109번: 순회강연 한 저명한 학자에게 n(0 ≤ n ≤ 10,000)개의 대학에서 강연 요청을 해 왔다. 각 대학에서는 d(1 ≤ d ≤ 10,000)일 안에 와서 강연을 해 주면 p(1 ≤ p ≤ 10,000)만큼의 강연료를 지불하겠다고 알려왔다. www.acmicpc.net 풀이 import sys import heapq n = int(input()) money = 0 arr = [] for _ in range(n): tmp = list(map(int,sys.stdin.readline().strip().split())) arr.append([tmp[0],tmp[1]]) arr = sorted(arr,key=lambda x: (..
[Python] 백준 #4659 - 비밀번호 발음하기 문제 https://www.acmicpc.net/problem/4659 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net 풀이 dic = {'a','e','i','o','u'} while True: ss = input() if ss == 'end': break check1 = False before1 = ['0',False] # 첫번째 전 (문자,모음 여부) before2 = ['0',False] # 두번째 전 (문자,모음 여부) now = ['0',False] # # 현재 (문자,모음 여부) for i,..
[Python] 백준 #2828 - 사과 담기 게임 문제 https://www.acmicpc.net/problem/2828 2828번: 사과 담기 게임 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M
[Python] 백준 #1992 - 쿼드트리 문제 https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 풀이 import sys n = int(input()) arr = [list(map(int,list(sys.stdin.readline().strip()))) for _ in range(n)] def tree(x,y,n): check = arr[x][y] # 체크할 기준 설정 for i in range(x,x+n): for j in range(y,y+n): if check != a..