반응형
DoZZang
Do IT
DoZZang
전체 방문자
오늘
어제
  • Programming
    • Git
    • Web
    • 기타
    • Python
      • CodeUp
    • Math
    • Algorithm
    • Baekjoon
    • C,C++
    • Life
      • 독서
      • Just
      • 영화

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
DoZZang

Do IT

[C++] 10773번 : 제로
Baekjoon

[C++] 10773번 : 제로

2024. 3. 3. 21:17
반응형

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

 

10773번: 제로

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경

www.acmicpc.net

풀이

스택을 사용하여 정말 쉽게 풀 수 있는 문제입니다.

문제의 '가장 최근에 재민이가 쓴 수를 지우게 시킨다.' 문장에서 이를 가장 효율적으로 수행할 수 있는 자료구조로

스택을 생각할 수 있었다면 구현은 어렵지 않습니다.

 

내 코드

#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	int K, sum = 0;
	cin >> K;
	stack<int> s;
	while (K--) {
		int num;
		cin >> num;
		if (num == 0) {
			sum -= s.top();
			s.pop();
		}
		else {
			s.push(num);
			sum += num;
		}
	}
	cout << sum;
	
}

합을 입력받으면서 처리해주지 않아도, while(!s.empty()) 조건을 이용하면, 쉽게 합을 계산할 수 있습니다!

반응형
저작자표시 (새창열림)

'Baekjoon' 카테고리의 다른 글

[C++] 2493번 : 탑  (0) 2024.03.05
[C++] 1874번 : 스택 수열  (2) 2024.03.05
[C++] 1406번 : 에디터  (1) 2024.02.27
[C++] 1919번 : 애너그램 만들기  (0) 2024.02.23
[C++] 백준 3273번 : 두 수의 합  (0) 2024.02.22
    'Baekjoon' 카테고리의 다른 글
    • [C++] 2493번 : 탑
    • [C++] 1874번 : 스택 수열
    • [C++] 1406번 : 에디터
    • [C++] 1919번 : 애너그램 만들기
    DoZZang
    DoZZang
    과정은 힘들지만 성장은 즐겁습니다.

    티스토리툴바