[BAEKJOON] 1927번 최소 힙

2024. 3. 26. 09:37·Algorithm/Priority_Queue

https://www.acmicpc.net/problem/1927

 

1927번: 최소 힙

첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0

www.acmicpc.net

문제조건
  1.  배열에 자연수 x를 넣는다.
  2. 배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다.

우선 입/출력이 많이 일어나기 때문에 입출력에 대해서 시간을 줄여줘야한다.

다들 많이 알고 있는 단축 코드이다.

ios::sync_with_stdio(false);
cin.tie(0);

 

https://dingcoding.tistory.com/62

 

ios::sync_with_stdio(false), cin.tie(0) 쓰는 이유, 백준 시간초과 해결

1. ios::sync_with_stdio(false), cin.tie(0) 은 무엇인가? 보통 백준, 프로그래머스 같은 온라인 저지 사이트에서 C++을 이용하여 알고리즘 문제를 풀 때 시간초과를 방지하기 위해서 이 두 줄을 추가해줍니

dingcoding.tistory.com

이 글에서 자세히 다루니, 나는 여기까지만 말하고 문제를 보겠다.

문제는 정말 무난했다. 그냥 priority_queue를 쓸 줄아냐고 물어보는 문제였다.

다만 여기선 priority_queue<int, vector<int>, greater<int>> 를 사용해서 우선순위의 큐의 top이 가장 작은 수가 오도록 최소힙으로 바꿔줘야 한다는 점이다. 

  • ,int : 자료형
  • vector<int> : 컨테이너형(구현체)
  • greater<int> : 비교연산자

물론 비교연산자를 구조체를 만들고, operator 함수를 따로 구현해서, 커스터마이징 하는 방법도 있다.

그런다음 문제의 조건에 맞게 구현만 한다면 바로 풀린다!

#include <iostream>
#include <queue>
using namespace std;
priority_queue<int, vector<int>, greater<int>> pq;

int n;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin >> n;
	for (int i = 0; i < n; i++) {
		int x;
		cin >> x;
		if (x == 0) {
			if (pq.empty()) cout << 0 << '\n';
			else {
				cout << pq.top() << '\n';
				pq.pop();
			}
		}
		else pq.push(x);
		
		
	}
}

쉬운 문제였다.

'Algorithm > Priority_Queue' 카테고리의 다른 글

[BAEKJOON] 2075번 N번째 큰 수  (1) 2024.05.20
'Algorithm/Priority_Queue' 카테고리의 다른 글
  • [BAEKJOON] 2075번 N번째 큰 수
Ls._.Rain
Ls._.Rain
안되면 될때까지 삽질했던 기록
  • Ls._.Rain
    Ls{Diary}
    Ls._.Rain
  • 전체
    오늘
    어제
    • 분류 전체보기 (136)
      • Github (2)
      • Spring (51)
        • Batch Programming (13)
        • 결제 (4)
        • 대용량 트래픽 (32)
        • OpenAI (0)
        • Security (0)
        • WebSocket (0)
        • JPA (1)
      • Algorithm (67)
        • DFS (6)
        • BFS (6)
        • Dynamic Programming (10)
        • Brute Force (4)
        • Binary Search (6)
        • 구현, 시뮬레이션 (15)
        • Stack (1)
        • Greedy (4)
        • Priority_Queue (2)
        • Back Tracking (3)
        • Geometry (2)
        • SCC (1)
        • 투포인터 (4)
        • 최대유량 (1)
        • 정렬 (1)
      • OS (0)
      • DevOps (15)
        • AWS (11)
        • Docker (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • hELLO· Designed By정상우.v4.10.0
Ls._.Rain
[BAEKJOON] 1927번 최소 힙
상단으로

티스토리툴바