티스토리 뷰

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함수를 통해 가장 최근값을 삭제시켜주었습니다.

반응형

'Algorithm > BOJ' 카테고리의 다른 글

백준 10807번 C++  (0) 2023.09.05
백준 10798번 C++  (0) 2023.09.05
백준 10757번 C++  (0) 2023.09.05
백준 10718번 C++  (0) 2023.09.05
백준 10699번 C++  (0) 2023.09.04
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함