본문 바로가기
반응형

알고리즘/자료구조55

[프로그래머스][Python] 이중우선순위큐 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 from heapq import heappush,heappop def solution(operations): max_h = [] min_h = [] for i in operations: comm, num = i.split() if comm == 'I': heappush(max_h,-int(num)) heappush(min_h,int(num)) elif comm == 'D' and min_h: if int(num) == 1: #최댓값 삭제 n = -heappop(max_h) min_h.remove(n) e.. 2023. 2. 3.
[백준][Python] 1417번 국회의원 선거 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 코드 import heapq n = int(input()) vote = [] one = int(input()) for _ in range(n-1): heapq.heappush(vote,-int(input())) ans = 0 while vote: first = -heapq.heappop(vote) if first < one: break first -= 1 heapq.heappush(vote,-first) one += 1 ans += 1 print(ans) 2023. 2. 1.
[백준][Python] 11866번 요세푸스 문제 0 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 코드 from collections import deque n,k = map(int,input().split()) dq = deque([i for i in range(1,n+1)]) ans = [] cnt = 0 while dq: a = dq.popleft() cnt += 1 if cnt == k: ans.append(a) cnt = 0 else: dq.append(a) print("") 2023. 1. 31.
[프로그래머스][Python] 두 큐 합 같게 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 from collections import deque def solution(queue1, queue2): queue1 = deque(queue1) queue2 = deque(queue2) sum1 = sum(queue1) sum2 = sum(queue2) cnt = 0 l = len(queue1) for _ in range(l*4): if sum1 < sum2: num = queue2.popleft() queue1.append(num) sum1 += num sum2 -= num cnt += 1 elif.. 2023. 1. 30.
반응형