BOJ 문제 링크: https://www.acmicpc.net/problem/2812

 

2812번: 크게 만들기

N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

N자리 숫자가 주어졌을때, K개의 숫자를 지워서 얻을 수 있는 가장 큰 수를 구하는 문제이다.

문제 유형은 그리디였지만 덱을 이용하면 문제를 쉽게 풀 수 있어서 자료구조의 중요성을 더 깨닫게 되었다.

먼저 주어진 숫자들을 순회하면서 현재 숫자가 덱에 있는 숫자보다 크면 덱에 있는 숫자들을 꺼내고 해당 숫자를 넣는다. 얼핏보면 스택구조를 이용해서도 문제를 풀 수 있을거 같지만 마지막에 삭제하고 남은 숫자들을 출력하는 과정에서 스택으로 치면 맨 밑에 있는 숫자부터 출력 해야하기 때문에 덱 구조가 더 문제에 적합하다.

코드 원본: https://github.com/sbl133/BOJ/blob/main/%232812.cpp

 

GitHub - sbl133/BOJ

Contribute to sbl133/BOJ development by creating an account on GitHub.

github.com

댓글을 통한 코드리뷰, 질문, 지적 언제든 환영입니다!

+ Recent posts