컴굥일지

[BOJ/백준 10773][C++] 제로 본문

알고리즘/코테 문제

[BOJ/백준 10773][C++] 제로

gyong 2022. 2. 22. 22:51
반응형

문제

https://www.acmicpc.net/problem/10773

 

문제 내용

숫자를 입력받아 0이면 이전 숫자를 지우고, 그렇지 않다면 계속 추가해주면 되는 문제이다.

문제에서는 마지막에 남아있는 수들의 합을 구하기를 바란다.

 

문제 풀이

크게 어려울 것이 없다.
스택을 쓸 줄 아는지 묻는 문제라고 보면 될 것 같다.

입력으로 0이 들어오면 pop(), 다른 수가 들어오면 push()를 해준다.

입력이 전부 끝나면 스택에 남아있는 수를 전부 더해주면 끝이다.

 

코드

#include <iostream>
#include <stack>
using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	//입력
	int n,num;
	cin >> n;
	stack<int> ss;

	//문제 해결
	for (int i = 0; i < n; i++) {
		cin >> num;
		if (num == 0) ss.pop();
		else ss.push(num);
	}
	int ans = 0; 
	int len = ss.size();
	for (int i = 0; i < len; i++) {
		ans += ss.top();
		ss.pop();
	}

	//결과 출력
	cout << ans;
}

 

반응형
Comments