Notice
Recent Posts
Link
«   2024/11   »
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
Archives
관리 메뉴

이우의 개발일지

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

Coding

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

공대이우 2024. 5. 16. 15:30

백준 10773번 제로 코드 및 문제

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

 

※ 이 문제에서 주의 할 점 : stack 사이즈는 계속 바뀐다!!

	for (int i = 0; i < nn; i++) {
		result += sta.back();
		//cout << "출력: " << sta.back() << endl;
		sta.pop_back();

	}

이 부분에서 stack의 사이즈를 nn이라고 해줬다.

원래는 저기에 stack.size() 해서 넣었는데 값이 계속 다르게 나와서 고정값을 넣어줬다.

스택에서 pop을 해줄 때마다 stack 사이즈가 계속 바뀌기 때문!!

#include <stdio.h>
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
int main() {
	int N;
	cin >> N;
	int nn = 0;
	vector<int> sta;
	int result = 0;
	for (int i = 0; i < N; i++) {
		int num;
		cin >> num;
		if (num == 0) {
			sta.pop_back();
			nn--;
		}
		else {
			sta.push_back(num);
			nn++;
			//cout << "출력: " << sta.top() << endl;
		}
	}


	
	for (int i = 0; i < nn; i++) {
		result += sta.back();
		//cout << "출력: " << sta.back() << endl;
		sta.pop_back();

	}

	cout << result << endl;

}

 

 

반응형