[BOJ 10773번] 제로(Java)
https://www.acmicpc.net/problem/10773
10773번: 제로
문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 ��
www.acmicpc.net
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
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 �
www.acmicpc.net
https://eloquence-developers.tistory.com/25
[BOJ 10828번] 스택 (Java)
https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고,..
eloquence-developers.tistory.com
이 문제는 크게 어렵지 않게 풀 수 있습니다.
0이 나오면 pop()을, 그게 아니면 push 함수를 통해 자료를 넣고, 이 작업이 완료되면 스택에 있는 모든 자료들을 더해서 프린트하면 됩니다.