728x90
반응형
이 문제는 스택을 활용하는 문제이다. 0이 입력으로 들어왔을 때 stack을 pop하는 조건을 가진 문제로 조건에 따라 stack을 채우고, 마지막에 스택에 있는 모든 원소를 더하여 출력함으로써 풀 수 있다.
작성한 코드는 다음과 같다.
#include<stdio.h>
//https://ark-hive.tistory.com/
int k;
int temp;
int stack[100020];
int top;
int sum;
void pop() {
if (top == 0) {
printf("%s\n", "underflow");
}
else {
top -= 1;
}
}
void push(int num) {
top = top + 1;
stack[top] = num;
}
int main(void) {
scanf("%d",&k);
for (int i = 0; i < k; i++) {
scanf("%d", &temp);
if (temp == 0) {
pop();
}
else {
push(temp);
}
}
for (int i = 1; i <= top; i++) {
sum += stack[i];
}
printf("%d\n", sum);
}
문제의 지문은 아래의 링크에서 참고하기 바란다.
728x90
반응형
'전공 > Problem Solving' 카테고리의 다른 글
[알고리즘/문제풀이/BOJ 4949번] 균형잡힌 세상 (0) | 2021.07.04 |
---|---|
[알고리즘/문제풀이/BOJ 9012번] 괄호 (0) | 2021.07.04 |
[알고리즘/문제풀이/BOJ 10828번] 스택 (0) | 2021.07.04 |
[알고리즘/문제풀이/BOJ 14889번/삼성 SW 역량 테스트 기출] 스타트와 링크 (0) | 2021.06.28 |
[알고리즘/문제풀이/BOJ 14888번/삼성 SW 역량 테스트 기출] 연산자 끼워넣기 (0) | 2021.06.28 |