본문 바로가기

Python

BAEKJOON(백준) Stack - 10773번 PYTHON / JAVA CODE

 

Python Code

import sys

#testcase 입력
k = sys.stdin.readline()
k = int(k)

#스택
stack = []

#0이면 pop하고, 아니면 append
for i in range(k):
    n = sys.stdin.readline()
    n = int(n)
    if n == 0:
        stack.pop()
    else:
        stack.append(n)

sum = 0
#스택 안에 남아있는 숫자들 전부 합하기
for i in range(len(stack)):
    sum += int(stack.pop())

print(sum)

 

 

JAVA Code

package BaekJoon;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.*;
import java.io.*;
import java.util.ArrayList;

public class Main {
	
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		char[] sp;
	
		int N = Integer.parseInt(br.readLine());
		int num;
		ArrayList<Integer> stack = new ArrayList<Integer>();
		
		for (int i=0; i<N; i++) {
			num = Integer.parseInt(br.readLine());
			if (num == 0)
				stack.remove(stack.size()-1);
			else
				stack.add(num);
		}
		
		int sum = 0;
		
		for(int i=0; i<stack.size(); i++)
			sum += stack.get(i);
		
		System.out.println(sum);
	}
}