[백준] 1927번: 최소 힙 C++로 풀어보기

2023. 8. 20. 21:35·Algorithm/Baekjoon(C++)

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

 

1927번: 최소 힙

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

www.acmicpc.net

 

1927번 설명

생각

사실 이 문제의 목적은 직접 최소 힙을 구현하라는 것이지만,

C++에서는 STL priority_queue가 있어서 최소 힙을 직접 구현하지 않고도 문제를 풀 수 있다.

C++에서 최소 힙을 사용하려면 아래와 같은 방식으로 선언해야한다.

priority_queue<int, vector<int>, greater<int>> pq;

 

코드
#include <bits/stdc++.h>
using namespace std;
priority_queue<int, vector<int>, greater<int>> pq; // 최소 힙


int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	int n; // 연산의 개수 n
	cin >> n;

	while (n--) {
		int x;
		cin >> x;
		
		if (x == 0) { // x가 0이라면
			if (pq.empty()) { // 배열이 비어있을 경우
				cout << 0 << '\n'; // 0 출력
			}
			else {
				cout << pq.top() << '\n'; // 배열에서 가장 작은 값 출력
				pq.pop(); // 그리고 그 값을 배열에서 제거
			}
			
		}

		else { // x가 0이 아니라면
			pq.push(x); // 배열에 x 삽입
		}
	}
}

 

결과

1927번 결과

너무 날로 먹었나라는 생각이 들었다. 라이브러리의 힘을 느낄 수 있었다.

이와는 별개로 따로 힙을 구현하는 방법을 공부해놓는 것이 좋을 것 같다.

저작자표시 비영리 변경금지 (새창열림)

'Algorithm > Baekjoon(C++)' 카테고리의 다른 글

[백준] 7662번: 이중 우선순위 큐 C++로 풀어보기  (2) 2023.08.20
[백준] 13414번: 수강신청 C++로 풀어보기  (1) 2023.08.20
[백준] 1644번: 소수의 연속합 C++로 풀어보기  (0) 2023.08.17
[백준] 1806번: 부분합 C++로 풀어보기  (1) 2023.08.17
[백준] 2230번: 수 고르기 C++로 풀어보기  (0) 2023.08.16
'Algorithm/Baekjoon(C++)' 카테고리의 다른 글
  • [백준] 7662번: 이중 우선순위 큐 C++로 풀어보기
  • [백준] 13414번: 수강신청 C++로 풀어보기
  • [백준] 1644번: 소수의 연속합 C++로 풀어보기
  • [백준] 1806번: 부분합 C++로 풀어보기
퀵차분
퀵차분
Web Developer 🥐
  • 퀵차분
    QC's Devlog
    퀵차분
  • 전체
    오늘
    어제
    • 분류 전체보기 (178)
      • Frontend (31)
      • Fedify (4)
      • Study (42)
        • NestJS (2)
        • Node.js (3)
        • Modern JS Deep Dive (13)
        • SQL (1)
        • Network (1)
        • 프롬프트 엔지니어링 (4)
        • 인공지능 (9)
        • 시스템프로그래밍 (11)
        • 선형대수학 (1)
      • Intern (4)
      • KUIT (21)
      • Algorithm (48)
        • Baekjoon(C++) (26)
        • Programmers(JavaScript) (22)
      • 우아한테크코스(프리코스) (4)
      • Project (10)
        • crohasang_page (3)
        • PROlog (4)
        • Nomadcoder (2)
      • 생각 (4)
      • Event (7)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    javascript
    프로그래머스 자바스크립트
    fedify
    티스토리챌린지
    react
    자바스크립트
    타입스크립트
    인공지능
    음악추천
    리액트
    백준
    알고리즘
    typescript
    프론트엔드
    HTML
    next.js
    시스템프로그래밍
    KUIT
    프로그래머스
    오블완
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
퀵차분
[백준] 1927번: 최소 힙 C++로 풀어보기
상단으로

티스토리툴바