Algorithm/BOJ
백준 10773번 C++
poopooreum
2023. 9. 5. 16:43
반응형
백준 10773번 제로
https://www.acmicpc.net/problem/10773
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net



정답 코드
#include<iostream>
#include<stack>
using namespace std;
int main() {
stack<int>s;
int k;
cin >> k;
for (int x = 0; x < k; x++) {
int n;
cin >> n;
if (n == 0)
s.pop();
else
s.push(n);
}
int sum = 0;
while(s.empty()!=1){
sum += s.top();
s.pop();
}
cout << sum;
}
문제 풀이
입력 받은 수가 0일때는 가장 최근에 입력한 수를 없애야 해서 후입선출 구조를 가진 stack을 이용해서 풀었습니다. 입력받는대로 스택에 push를 하다가 0일때만
pop함수를 통해 가장 최근값을 삭제시켜주었습니다.
반응형