<문제 10773 - 제로>
[문제]
[답안]
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(); // k개수 입력받기
int sum = 0; // 합계를 계산할 변수 초기화
for (int i = 0; i < k; i++) {
int a = sc.nextInt(); // k개수만큼 a입력받기
if (a == 0){ // '0'이 입력되었을때
sum = sum - stack.peek();
stack.pop();
}else {
sum = sum + a;
stack.push(a);
}
}
System.out.println(sum);
}
}
- push(input) : input값을 stack에 넣어준다.
- pop : 맨 위 값 return + 동시에 제거
- peek : 맨 위 값 return
- isEmpty() : stack이 비어있으면 true, 아니면 false
- size() : stack이 가지고 있는 원소의 개수를 보여준다.
'알고리즘 풀이(JAVA) > 백준' 카테고리의 다른 글
[백준] 문제번호 1463 (1로 만들기)(java) (0) | 2022.09.27 |
---|---|
[백준] 문제번호 4949 (균형잡힌 세상)(java) (1) | 2022.09.26 |
[백준] 문제번호 1152 (단어의 개수)(java) (0) | 2022.08.17 |
[백준] 문제번호 2908 (상수)(java) (0) | 2022.08.17 |
[백준] 문제번호 5622 (다이얼)(java) (0) | 2022.08.17 |