IT/Algorithm 3

베스트셀러

https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net d = dict() for _ in range(int(input())): book = input() if book in d: #들어온 책 인경우 d[book] += 1 else: d[book] = 1 m = max(d.values()) candidate = [] for k,v in d.items(): if v == m: candidate.append(k) candidate.sort() pr..

IT/Algorithm 2023.07.12

절댓값 힙

https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net import sys import heapq as hq input = sys.stdin.readline #빠른 입출력 pq = [] for _ in range(int(input())): x = int(input()) if x: hq.heappush(pq, (abs(x), x)) #튜플을 원소로 넣어줌 else: print(hq.heappop(pq)[1] if pq else 0)..

IT/Algorithm 2023.07.12

카드놀이2

https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net deque와 배열 푸는 방법 두가지가 있음 시간복잡도 측면에서 deque O(N) 이 배열 O(N^2)보다 훨씬 빠름 from collections import deque dq = deque() N = int(input()) # dq = deque(range(1, N +1 )) for i in range(1, N + 1): dq.append(i) # print(dq) while len(dq) > ..

IT/Algorithm 2023.07.12