반응형 분류 전체보기252 [백준][Python] 1927번 최소 힙 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 코드 import heapq import sys heap = [] n = int(input()) for _ in range(n): num = int(sys.stdin.readline()) if num == 0: if heap: print(heapq.heappop(heap)) else: print(0) else: heapq.heappush(heap,num) 2022. 2. 21. [백준][Python] 4358번 생태학 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 코드 import sys total = 0 dic = dict() while 1: word = sys.stdin.readline().rstrip() if word == '': break total += 1 if word in dic: # 전에 이미 나왔으면 dic[word] += 1 else: dic[word] = 1 sdic = dict(sorted(dic.items())) for i in sdic: a = sdic[i] per = (a / tota.. 2022. 2. 21. [백준][Python] 11286번 절댓값 힙 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 코드 import sys import heapq n = int(input()) heap = [] for i in range(n): x = int(sys.stdin.readline()) if x == 0: if heap: print(heapq.heappop(heap)[1]) else: print(0) else: heapq.heappush(heap,(abs(x),x)) 설명 heap에 push를 할 때 (절댓값, 원래값)을 같이 넣어줘서 만약 절.. 2022. 2. 19. [백준][Python] 14425번 문자열 집합 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 코드 import sys N, M = map(int, input().split()) arr = dict() cnt = 0 for _ in range(N): s = sys.stdin.readline() arr[s] = True for _ in range(M): inp = sys.stdin.readline() if inp in arr.keys(): cnt+=1 print(cnt) 설명 딕셔너리를 사용하여 구현했다. 파이썬 딕셔너리는 해.. 2022. 2. 18. 이전 1 ··· 54 55 56 57 58 59 60 ··· 63 다음 반응형