Notice
Recent Posts
Link
정화 코딩
[C++] Gazzzua (백준 17939번) 본문
https://www.acmicpc.net/problem/17939
#include <iostream>
#include <vector>
using namespace std;
int n;
vector<int> c;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n;
c = vector<int>(n);
for (int i = 0; i < n; i++) cin >> c[i];
int ans = 0;
int s = 0;
int e = c.size();
while (s < e) {
int maxv = 0;
int maxi = -1;
for (int i = s; i < e; i++) {
if (c[i] >= maxv) {
maxv = c[i];
maxi = i;
}
}
for (int i = s; i < maxi; i++) {
ans -= c[i];
}
ans += maxv * (maxi - s);
s = maxi + 1;
}
cout << ans << '\n';
}
일단 처음에는 전체 구간에서 최댓값을 찾고, 최대 전까지 계속 사다가 최대인 지점에서 다 팔았다. 그리고 구간을 최대 지점을 기준으로 잘라 뒷부분으로 줄이고 다시 반복하고... 구간의 길이가 1이 될 때까지 반복했다. 그리디 알고리즘 문제였다. (정답)
오랜만에 랜디했다. 실2~골5로 했다. 랜디 딱 돌리고 보니까 제목이 영어라서 윽 영어문제?! 넘길까?? 했는데 문제만 영어였다. 문제 풀고 제목을 다시 읽어보기 가주아 ㅋㅋㅋ 요즘 엘리스 푸느라 하루의 PS 에너지를 다 써서 백준 스트릭은 항상 쉬운걸로 풀었다. 따라서 매우 오랜만에 쓰는 글.. 엘리스 복기 글도 써야겠다.
'PS' 카테고리의 다른 글
[C++] 반복하지 않는 수 (백준 7696번) (0) | 2024.08.02 |
---|---|
[C++] 치즈 (백준 2638번) (0) | 2024.07.22 |
[C++] 셀프 넘버 (백준 4673번) (0) | 2024.07.15 |
[C++] 엘리스 알고리즘 코드 챌린지 7/8 : 목표량 (0) | 2024.07.08 |
[C++] 선물 (백준 1166번) (0) | 2024.07.07 |
Comments