728x90
문제
풀이
풀이 1: Stack 을 이용한 풀이
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Stack<Integer> stack = new Stack<Integer>();
int K = sc.nextInt();
for (int i = 0; i < K; i++) {
int n = sc.nextInt();
if(n==0){
stack.pop();
}else{
stack.push(n);
}
}
int num=0;
for (Integer integer : stack) {
num+=integer;
}
System.out.println(num);
}
}
풀이 2 : 배열을 이용한 풀이
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int K = sc.nextInt();
int[] stack = new int[K]; // 최대 K개의 숫자를 저장할 수 있는 배열
int top = 0; // 현재 stack의 top을 나타내는 인덱스
for (int i = 0; i < K; i++) {
int n = sc.nextInt();
if (n == 0) {
if (top > 0) {
top--; // pop과 동일하게 top을 감소시킴
}
} else {
stack[top] = n; // push와 동일하게 top 위치에 값 저장
top++; // top을 증가시킴
}
}
int num = 0;
for (int i = 0; i < top; i++) {
num += stack[i];
}
System.out.println(num);
}
}
728x90
'백준' 카테고리의 다른 글
백준 12789 - Java (0) | 2024.09.04 |
---|---|
백준 4949 - Java (0) | 2024.09.04 |
백준 28278 - Java (0) | 2024.09.04 |
백준 17103 - Java (0) | 2024.09.04 |
백준 13909 - Java (0) | 2024.09.04 |