728x90
반응형
10828번 : 스택에 이어서 다음 스택 관련 문제인 10773번 : 제로 문제를 풀었다.
스택에 대해 아직 이해하지 못했다면 다음의 블로그에서 확인하면 된다.
https://lucy1215.tistory.com/17
바로 앞 문제인 10828번 : 스택 에 대한 내용은 바로 앞의 블로그에서 확인하면 된다.
https://lucy1215.tistory.com/18
<문제>
<문제 해석>
스택을 이용하여
0이 아닌 숫자일 때는 stack에 그 수를 push하고
숫자가 0이면 stack의 맨 위 숫자를 pop한다.
마지막에 stack에 있는 숫자들의 합을 구한다.
<문제 해결>
이 문제 또한, 스택 관련 문제이다.
스택에 대해 이해하고 있다면 어렵지 않게 풀었을 것이다.
이 문제는 2단계로 나눌 수 있는데,
1. 숫자가 0이면 pop / 0이 아니면 push ====> run() 함수
2. 마지막에 stack에 있는 숫자들의 합 ====> sum() 함수
<코드>
import java.io.IOException;
import java.util.Scanner;
import java.util.Stack;
public class Main {
static int n;
static Stack<Integer> stack = new Stack<>();
static int a;
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
for(int i=0;i<n;i++) {
a = sc.nextInt();
run();
}
System.out.println(sum());
}
static void run() {
if(a != 0) {
stack.push(a);
}else {
stack.pop();
}
}
static int sum() {
int total = 0;
for(int i=0;i<stack.size();i++) {
total += stack.get(i);
}
return total;
}
}
https://www.acmicpc.net/problem/10773
반응형
'백준' 카테고리의 다른 글
[백준] 4949번 : 균형잡힌 세상 (JAVA) (0) | 2023.01.09 |
---|---|
[백준] 9012번 : 괄호 (JAVA) (0) | 2023.01.09 |
[백준] 10828번 : 스택 (JAVA) (0) | 2023.01.09 |
[백준] 1931번 : 회의실 배정 (JAVA) (2) | 2023.01.06 |
[백준] 11047번 : 동전 0 (JAVA) (0) | 2023.01.06 |