π [λ°±μ€μκ³ λ¦¬μ¦ νμ΄] Q.10773 μ λ‘ λ¬Έμ νμ΄ - java
π λ¬Έμ
https://www.acmicpc.net/problem/10773
λμ½λ κΈ°μ₯ μ¬λ―Όμ΄λ λμ리 νμμ μ€λΉνκΈ° μν΄μ μ₯λΆλ₯Ό κ΄λ¦¬νλ μ€μ΄λ€.
μ¬νμ΄λ μ¬λ―Όμ΄λ₯Ό λμμ λμ κ΄λ¦¬νλ μ€μΈλ°, μ μνκ²λ νμ μ μ μλ μ¬νμ΄λ λμ μ€μλ‘ μλͺ» λΆλ₯΄λ μ¬κ³ λ₯Ό μΉκΈ° μΌμ€μλ€.
μ¬νμ΄λ μλͺ»λ μλ₯Ό λΆλ₯Ό λλ§λ€ 0μ μΈμ³μ, κ°μ₯ μ΅κ·Όμ μ¬λ―Όμ΄κ° μ΄ μλ₯Ό μ§μ°κ² μν¨λ€.
μ¬λ―Όμ΄λ μ΄λ κ² λͺ¨λ μλ₯Ό λ°μ μ μ ν κ·Έ μμ ν©μ μκ³ μΆμ΄ νλ€. μ¬λ―Όμ΄λ₯Ό λμμ£Όμ!
μ λ ₯
첫 λ²μ§Έ μ€μ μ μ Kκ° μ£Όμ΄μ§λ€. (1 β€ K β€ 100,000)
μ΄ν Kκ°μ μ€μ μ μκ° 1κ°μ© μ£Όμ΄μ§λ€. μ μλ 0μμ 1,000,000 μ¬μ΄μ κ°μ κ°μ§λ©°, μ μκ° β0β μΌ κ²½μ°μλ κ°μ₯ μ΅κ·Όμ
μ΄ μλ₯Ό μ§μ°κ³ , μλ κ²½μ° ν΄λΉ μλ₯Ό μ΄λ€.
μ μκ° β0βμΌ κ²½μ°μ μ§μΈ μ μλ μκ° μμμ 보μ₯ν μ μλ€.
μΆλ ₯
μ¬λ―Όμ΄κ° μ΅μ’ μ μΌλ‘ μ μ΄ λΈ μμ ν©μ μΆλ ₯νλ€.
π μ κ·Όλ²
boj Q.10773 μ λ‘ λ¬Έμ μ λλ€.
μ λ ₯μΌλ‘ kκ° μ£Όμ΄μ§κ³
μ΄ν kκ°μ μ€μ μ μκ° 1κ°μ© μ£Όμ΄μ§λλ€.
μ¬κΈ°μ μ μκ° β0βμΌ κ²½μ°μλ
κ°μ₯ μ΅κ·Όμ μ΄ μλ₯Ό μ§μ°κ² λ©λλ€
κ°μ₯ μ΅κ·Όμ μ΄ μκ° λ¨Όμ μ§μμ§ => κ°μ₯ λμ€μ μ λ ₯λ μκ° λ¨Όμ μ§μμ§
LIFO (LAST IN FIRST OUT)
λ°λ‘ μ€νμ μ΄μ©ν΄μ νμ΄ν μ μμ΅λλ€.
μ«μλ₯Ό μ€νμ μ°¨κ·Όμ°¨κ·Ό μμμ£Όλλ° λμ μ μ 0μ λ§λλ©΄
0μ λ£μ§μκ³ μ΅κ·Όμ μ«μλ₯Ό μ€νμμ κΊΌλ΄μ€λλ€. pop
λͺ¨λ μ«μλ₯Ό μ²λ¦¬νκ³ λμ
μ€νμ λ¨μμλ μλ₯Ό νλμ© μ°¨κ·Όμ°¨κ·Ό λΉΌμ
ν©μ ꡬν΄μ£Όλ©΄ λ΅μ λμΆ ν μ μμ΅λλ€.
π» μ½λ
package problem.stack;
import java.io.*;
import java.util.Stack;
public class Main_10773 {
static int k;
static Stack<Integer> stack;
static int sum = 0;
static BufferedWriter bw;
public static void main(String[] args) throws IOException {
bw = new BufferedWriter(new OutputStreamWriter(System.out));
stack = new Stack<>();
solve();
bw.flush();
bw.close();
}
static void solve() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
k = Integer.parseInt(br.readLine());
for(int i=0; i<k; i++ ){
int num = Integer.parseInt(br.readLine());
if(num == 0){
stack.pop();
}
else {
stack.push(num);
}
}
while (!stack.isEmpty()){
sum+=stack.pop();
}
System.out.println(sum);
br.close();
}
}