https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 풀이 현재 시간까지 요청된 모든 작업들 중에서 가장 작업 소요 시간이 짧은 것부터 처리하자 ➡ 최소 heap heap에 요청된 작업을 모두 넣어두고 나서 한 개를 꺼내면, 바로 그것이 가장 짧은 소요 시간을 가지는 작업이다. 현재 시간 time에서 가장 짧은 작업의 작업 시간만큼 더해서 해당 작업이 처리됐음을 표현한자. 만약 현재 시간까지 요청된 작업이 없다면, 1초를 증가하고 다시 요청 작..
https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 1. 접근 방식 최소 힙을 사용하자. 카드 합체 놀이의 점수를 가장 작게 만드는 것이 놀이의 목표이다. x번 카드와 y번 카드를 고를 때, 그 두 장에 써진 수가 작을수록 그 둘의 합도 작아지기 때문에 모든 카드의 수를 더한 점수도 작아진다. 따라서 수가 가장 작은 카드를 2장 뽑기 위해 최소 힙을 사용한다. 문제 명세대로 구현하자. 문제에 카드 합체 놀이 과..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 1. 접근 방식 heapq의 heappush 시 튜플을 활용하자. 튜플을 사용하면 튜플의 원소별로 오름차순 정렬된다. 그리고 튜플의 원소 개수는 2개 이상도 가능하다. 아래는 heappush에서 튜플로 오름차순 정렬 기준을 설정한 예시 코드이다. from heapq import heappush, heappop heap = [] heappush(heap, (1, 2, "AA")..
https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 1. 접근 방식 문제에서 최소 힙이라고 이야기하고 있으므로, heapq 모듈을 사용하였다. 2. 정답 코드 from heapq import heappush, heappop import sys input = sys.stdin.readline heap = [] count = int(input()) for _ in range(count) : n = int(input()) if not..