BOJ 문제 링크: https://www.acmicpc.net/problem/2812
N자리 숫자가 주어졌을때, K개의 숫자를 지워서 얻을 수 있는 가장 큰 수를 구하는 문제이다.
문제 유형은 그리디였지만 덱을 이용하면 문제를 쉽게 풀 수 있어서 자료구조의 중요성을 더 깨닫게 되었다.
먼저 주어진 숫자들을 순회하면서 현재 숫자가 덱에 있는 숫자보다 크면 덱에 있는 숫자들을 꺼내고 해당 숫자를 넣는다. 얼핏보면 스택구조를 이용해서도 문제를 풀 수 있을거 같지만 마지막에 삭제하고 남은 숫자들을 출력하는 과정에서 스택으로 치면 맨 밑에 있는 숫자부터 출력 해야하기 때문에 덱 구조가 더 문제에 적합하다.
코드 원본: https://github.com/sbl133/BOJ/blob/main/%232812.cpp
댓글을 통한 코드리뷰, 질문, 지적 언제든 환영입니다!
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 백준 17828번 문자열 화폐 c++ (0) | 2021.09.29 |
---|---|
[BOJ] 백준 15686번 치킨 배달 c++ (0) | 2021.09.22 |
[BOJ] 백준 12865번 평범한 배낭 c++ (0) | 2021.09.20 |
[BOJ] 백준 14503번 로봇 청소기 (0) | 2021.09.04 |
[BOJ] 백준 9251번 LCS (0) | 2021.09.02 |