BOJ 1874. 스택수열
BOJ 1874. 스택 수열
풀이
입력으로 4 3 6 8 7 5 2 1
으로 주어졌을 때
먼저 1부터 시작하여 4까지 Stack에 순서대로 push(+)한다.
입력인 4가 되었을 때 Stack에서 pop(-)
또 다음 입력인 3이 되었을 때 Stack에서 pop(-)한다.
다음 입력인 6이 될 때까지 Stack에 다시 push(+)
입력인 6에 도달하였으니 pop(-)
위와 같이 반복한다.
import java.io.*;
import java.util.Stack;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
Stack<Integer> stack = new Stack<>();
int total = Integer.parseInt(br.readLine());
int i = 1;
while (total-- > 0) {
int input = Integer.parseInt(br.readLine());
while (i <= input) {
stack.push(i);
sb.append("+\n");
i++;
}
if (stack.peek() == input) {
stack.pop();
sb.append("-\n");
} else {
System.out.print("NO");
return;
}
}
System.out.println(sb);
br.close();
return;
}
}
import java.lang.StringBuilder
import java.util.*
fun main() {
val stack = Stack<Int>()
val sb = StringBuilder()
var i = 1;
repeat(readLine()?.toInt() ?: return) {
val input = readLine()!!.toInt()
while (i <= input) {
stack.push(i)
sb.append("+\n")
i++
}
if (stack.peek() == input) {
stack.pop()
sb.append("-\n")
} else {
print("NO")
return
}
}
println(sb)
return
}
풀이 소스
github.com/beomjo/algorithm-study/blob/main/BOJ/java/1874.java github.com/beomjo/algorithm-study/blob/main/BOJ/kotlin/1874.kt