프로그래밍 공부
BOJ/백준 17952 과제는 끝나지 않아! 본문
https://www.acmicpc.net/problem/17952
문제 자체는 직관적이다고 생각했고 어떻게 처리를 해야할지 생각하는 것이 중요하다 생각했다.
특히, 문제를 받는 즉시 시작 이 부분이 중요했다는 생각이 들었다.
그 다음 문제는 예외 처리인데 스택이 비어있을때 조회를 하지 않는 코드를 처음에는 작성하지 않았었는데
시작부터 0을 넣는 테스트 케이스가 있었던거 같아서 스택이 비어있을때는 스택에서 데이터를 조회하지 않게 처리를 해줘야했었다.
#include <iostream>
#include <stack>
using namespace std;
#define SCORE first
#define TIME second
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n, ans = 0;
stack<pair<int, int>> s;
cin >> n;
for(int i = 0; i < n; i++){
int order;
cin >> order;
if(order == 1){
int a, t;
cin >> a >> t;
--t;
if(t == 0) ans += a;
else s.push({a, t});
}
else{
if(s.empty()) continue;
pair<int, int> tmp = s.top();
tmp.TIME--;
if(tmp.TIME == 0){
s.pop();
ans += tmp.SCORE;
}
else{
s.pop();
s.push(tmp);
}
}
}
cout << ans;
return 0;
}
'Problem Solving > Baekjoon Online Judge' 카테고리의 다른 글
| BOJ/백준 2304 창고 다각형 (1) | 2024.09.09 |
|---|---|
| BOJ/백준 2504 괄호의 값 (0) | 2024.09.09 |
| BOJ/백준 25497 기술 연계마스터 임스 (0) | 2024.08.10 |
| BOJ/백준 3015 오아시스 재결합 (0) | 2024.08.10 |
| BOJ/백준 22352 항체 인식 (0) | 2021.08.02 |
Comments