CodingTest/Java
BOJ_1874 : μ€ν μμ΄
Soom_1n
2022. 11. 7. 16:50
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
πΈ λ¬Έμ λΆμ πΈ
- μ€νμ pop, push μ°μ°κ³Ό νμ μ μΆ κ°λ μ μ ννκ² μκ³ μλμ§ λ¬»λ λ¬Έμ μ΄λ€.
- μ€νμ λ£λ μμ°μ κ°μ μ€λ¦ μ°¨μ μ λ ¬μ΄λ€.
- νμ¬ μμ΄ κ° >= μμ°μ
- μμ°μκ° νμ¬ μμ΄ κ°κ³Ό κ°μμ§ λ κΉμ§ μμ°μλ₯Ό 1μ¦κ°μν€λ©° μ€νμ pushνλ€.
- λ§μ§λ§μ μΆλ ₯νκΈ° μν΄ 1λ² popνλ€.
- νμ¬ μμ΄ κ° < μμ°μ
- popν΄μ μ€νμ κ°μ₯ μ κ°μ νμΈνλ€.
- κΊΌλΈ κ°μ΄ νμ¬ μμ΄ κ°μ΄ μλλΌλ©΄, νμ μ μΆ μ리μ λ°λΌμ μμ΄μ νκΈ°ν μ μλ€. NOμΆλ ₯.
- νμ¬ μμ΄ κ°μ΄λΌλ©΄ κ·Έλλ‘ μ‘°κ±΄λ¬Έμ λμ¨λ€.
- popν΄μ μ€νμ κ°μ₯ μ κ°μ νμΈνλ€.
- νμ¬ μμ΄ κ° >= μμ°μ
πΈ μ½λ πΈ
import java.io.*;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer();
int n = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
int num = 1;
boolean result = true;
for (int i = 0; i < n; i++){
int su = Integer.parseInt(br.readLine());
if (su >= num){
while (su >= num){
stack.push(num++);
sb.append("+\n");
}
stack.pop();
sb.append("-\n");
}
else {
int pop = stack.pop();
if (pop > su) {
System.out.println("NO");
result = false;
break;
}
else {
sb.append("-\n");
}
}
}
if (result) System.out.println(sb.toString());
}
}
πΈ μ½λ ν΄μ πΈ
- Stack ν΄λμ€λ₯Ό μ΄μ©ν΄μ μ€νμ μ¬μ©νλ€.
- μ λ ₯ λ°μ μμ΄ κ°μ μ΄μ©ν΄ μ€ν ννμ΄ λλμ§ κ³μ°νλ€.
πΈ end πΈ
- μ΄μ μ pythonμΌλ‘ νμλ λ¬Έμ μΈλ°, λ€μ javaλ‘ νμ΄λ³΄λ μλ‘μ λ€.
- javaμ μλ£κ΅¬μ‘° ν΄λμ€λ₯Ό μ¬μ©νλκ² μ΅μμ§ μμλ° μ’μ μ°μ΅μ΄ λμλ€.
- ν λ²μ μΆλ ₯νκΈ° μν΄ StringBufferλ μ¬μ©νλλ°, μ΄μ μλ StringBuilderλ₯Ό μ¬μ©ν΄μ κ·Έ μ°¨μ΄μ μ΄ λ¬΄μμΈκ° ν¬μ€ν
μ μ°Ύμ보μλ€.
- Stringκ³Ό StringBuffer/StringBuilderμ μ°¨μ΄μ μ λ©λͺ¨λ¦¬κ° λΆλ³μ±μΈμ§ κ°λ³μ±μΈμ§μ΄λ€.
- Stringμ λ³νμ§ μλ λ¬Έμμ΄μ μμ£Ό μ¬μ©νλ κ²½μ° μ¬μ©νλ€.
- StringBuffer/StringBuilderλ λ¬Έμμ΄μ΄ κΈΈμ΄μ§λ©΄, κ·Έ λ§νΌ λ©λͺ¨λ¦¬λ₯Ό λλ €μ μ¬μ©ν μ μκ² ν΄μ€λ€.
- StringBuffer/StringBuilderμ μ°¨μ΄μ μ λκΈ°ν(Synchronization)μ΄λ€.
- StringBuilderλ λκΈ°νλ₯Ό μ§μνμ§ μμ§λ§ μλλ StringBufferλ³΄λ€ μ±λ₯μ΄ μ’λ€.
λ°λΌμ λ¨μΌ μ€λ λ νκ²½μμ λ¬Έμμ΄μ μμ μ΄ λΉλ²ν κ²½μ° μ¬μ©νλ€. - StringBufferλ λκΈ°νλ₯Ό μ§μνμ¬ λ©ν° μ€λ λ νκ²½μμλ μμ νκ² λμνλ€.
λ°λΌμ λ©ν° μ€λ λ νκ²½μμ λ¬Έμμ΄μ μμ μ΄ λΉλ²ν κ²½μ° μ¬μ©νλ€.
- StringBuilderλ λκΈ°νλ₯Ό μ§μνμ§ μμ§λ§ μλλ StringBufferλ³΄λ€ μ±λ₯μ΄ μ’λ€.
- μ΄ λ¬Έμ νμ΄μμλ StringBuilderλ₯Ό μ¬μ©νλκ² λ μ±λ₯μ΄ μ’μμ κ²μ΄λ€.
- Stringκ³Ό StringBuffer/StringBuilderμ μ°¨μ΄μ μ λ©λͺ¨λ¦¬κ° λΆλ³μ±μΈμ§ κ°λ³μ±μΈμ§μ΄λ€.
728x90