반응형

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(void) {
	int T, num;
	int sum = 0;

	cin >> T;
	int i;
	stack<int> number;
	for (i = 0;i < T;i++) {
		cin >> num;
		if (num != 0)
			number.push(num);
		else if (num == 0) {
			if (number.empty()) number.push(num);
			else number.pop();
		}
	}
	int size =number.size();
	for (i = 0;i < size;i++) {
		sum += number.top();
		number.pop();
	}
	cout << sum;
	return 0;
}

힌트를 안보고 풀다가 좀 헤맸는데 결국 풀어냈다.

스택에 전부 집어넣고 하다가 안풀려서 생각의 전환을 해봤다.

그래서 히히 난 천재야 하며 즐거워했지만

밑에 힌트가 있었다는게 함정이었다.ㅠㅠ

반응형

'BOJ' 카테고리의 다른 글

[백준 11758번] CCW  (0) 2021.04.30
[백준] 순열 & 조합 (Permutation & Combination)  (0) 2021.04.27
[백준 9012번] 괄호  (0) 2021.04.25
[백준 1546번] 평균  (0) 2021.04.22
[백준 1003번] 피보나치 함수  (0) 2021.04.21

+ Recent posts