전공공부
[BOJ_1874] 스택 수열 본문
설명
Stack에 대해서 크게 이해를 하고 있지 않아도 사실상 구현 문제에 가까운 느낌이였다. 반복문 셋팅을 잘 못하고 else 문 처리를 잘 못 해서 시간을 많이 잡아 먹은 문제다.
코드
package Data_Structure;
import java.util.*;
import java.io.*;
public class BOJ_1874 {
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
Stack<Integer> st = new Stack<>();
int top = 0;
StringBuffer sb = new StringBuffer();
for(int i = 0; i < N; i++) {
int num = sc.nextInt();
if(top < num) {
for (int j = top + 1; j <= num; j++) {
st.add(j);
sb.append("+" + "\n");
}
top = num;
} else if(st.peek() != num){
System.out.println("NO");
return;
}
st.pop();
sb.append("-" + "\n");
}
System.out.println(sb.toString());
}
}
1874번: 스택 수열
1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.
www.acmicpc.net
'Study > Problem Solving' 카테고리의 다른 글
[BOJ_11279] 최대 힙 (1) | 2023.10.30 |
---|---|
[BOJ_2504] 괄호의 값 (1) | 2023.10.29 |
[BOJ_14425] 문자열 집합 (1) | 2023.10.26 |
[BOJ_1620] 나는야 포켓몬 마스터 이다솜 (0) | 2023.10.25 |
[BOJ_1966] 프린터 큐 (1) | 2023.10.24 |