https://www.acmicpc.net/problem/10773
import java.util.*;
import java.io.*;
public class Main {
static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
static BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
static int[] stack;
static int top=-1;
public static void main(String args[]) throws Exception {
int k=Integer.parseInt(br.readLine());
stack=new int[k];
for(int iter=0;iter<k;iter++) {
int num=Integer.parseInt(br.readLine());
if(num==0) pop();
else push(num);
}
int sum=0;
for(int i=0;i<=top;i++) {
sum+=stack[i];
}
bw.write(String.valueOf(sum));
bw.flush();
bw.close();
}
static public void push(int num) {
stack[++top]=num;
}
static public int pop() {
if(top<0) return -1;
else return stack[top--];
}
static public int size() {
return top+1;
}
static public int empty() {
if(top<0) return 1;
else return 0;
}
static public int top() {
if(top<0) return -1;
return stack[top];
}
}
이 문제는 백준 10828번인 스택 문제를 바탕으로 해서 작성했습니다.
아래 10828번 링크와 제가 풀었던 풀이 링크를 달아놓을테니 참고하실 분들은 참고하시면 좋을 것 같습니다.
https://www.acmicpc.net/problem/10828
https://eloquence-developers.tistory.com/25
이 문제는 크게 어렵지 않게 풀 수 있습니다.
0이 나오면 pop()을, 그게 아니면 push 함수를 통해 자료를 넣고, 이 작업이 완료되면 스택에 있는 모든 자료들을 더해서 프린트하면 됩니다.
'프로그래밍 문제 > BOJ(백준 온라인 저지)' 카테고리의 다른 글
[BOJ 2164번] 카드2(자바) (0) | 2020.07.31 |
---|---|
[BOJ 18258번] 큐 2(JAVA) (0) | 2020.07.31 |
[BOJ 9012번] 괄호(JAVA) (0) | 2020.07.29 |
[BOJ 1874번] 스택 수열(Java) (0) | 2020.07.24 |
[BOJ 10828번] 스택 (Java) (0) | 2020.07.23 |