본문 바로가기
Algorithm/BOJ

[BOJ]2493번: 탑

by BAYABA 2021. 6. 18.

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


스택으로 해결할 수 있는 문제입니다.

 

1. 입력으로 주어지는 탑의 높이를 큐 자료구조에 저장합니다.

2. 큐에서 나오는 각 element에 대해 필요한 연산을 하고 저장을 할 스택(rest)을 만듭니다.

- 스택의 의미는 현재 큐에 나오는 element가 쏘는 레이저를 송신하는 탑을 의미합니다.

 

3. 큐에서 하나씩 element를 뽑으면서 내 레이저를 송신할 탑을 찾습니다.

-1 현재 스택의 TOP에 있는 탑의 높이가 현재 element 탑의 높이보다 높다면 =>  

---- 현재 element의 레이저를 송신하는 탑으로 스택의 TOP을 저장하고 현재 element를 스택에 push합니다.

 

-2 현재 스택의 TOP에 있는 탑의 높이가 현재 element 탑의 높이보다 작다면 =>

---- 현재 element 탑보다 큰 높이의 탑이 나올 때 까지 pop 연산을 수행합니다. 그리고 나서 3-1번 과정이 진행됩니다.

 

이런식으로 자신의 레이저를 송신할 스택의 TOP을 찾고, 자신을 스택에 push하면 됩니다.


코드: https://github.com/cotchan/algorithm/blob/main/java/BOJ/BOJ2493.java

 

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

[BOJ]1162번: 도로포장(JAVA)  (0) 2021.06.28
[BOJ]1590번: 캠프가는 영식  (0) 2021.06.23
[2020 카카오 기출] 문자열 압축(JAVA)  (0) 2021.04.21
[BOJ]1941번: 소문난 칠공주  (0) 2021.04.14
[BOJ]14502번: 연구소  (0) 2021.04.09