https://www.acmicpc.net/problem/1417
๋ฌธ์
๋ค์์ด๋ ์ฌ๋์ ๋ง์์ ์ฝ์ ์ ์๋ ๊ธฐ๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋ค์์ด๋ ์ด ๊ธฐ๊ณ๋ฅผ ์ด์ฉํด์ 2008๋ 4์ 9์ผ ๊ตญํ์์ ์ ๊ฑฐ๋ฅผ ์กฐ์ํ๋ ค๊ณ ํ๋ค.
๋ค์์ด์ ๊ธฐ๊ณ๋ ๊ฐ ์ฌ๋๋ค์ด ๋๊ตฌ๋ฅผ ์ฐ์ ์ง ๋ฏธ๋ฆฌ ์ฝ์ ์ ์๋ค. ์ด๋ค ์ฌ๋์ด ๋๊ตฌ๋ฅผ ์ฐ์ ์ง ์ ํ์ผ๋ฉด, ๋ฐ๋์ ์ ๊ฑฐ๋ ๊ทธ ์ฌ๋์ ์ฐ๋๋ค.
ํ์ฌ ํํ๊ตฌ์ ๋์จ ๊ตญํ์์ ํ๋ณด๋ N๋ช ์ด๋ค. ๋ค์์ด๋ ์ด ๊ธฐ๊ณ๋ฅผ ์ด์ฉํด์ ๊ทธ ๋ง์์ ์ฃผ๋ฏผ M๋ช ์ ๋ง์์ ๋ชจ๋ ์ฝ์๋ค.
๋ค์์ด๋ ๊ธฐํธ 1๋ฒ์ด๋ค. ๋ค์์ด๋ ์ฌ๋๋ค์ ๋ง์์ ์ฝ์ด์ ์์ ์ ์ฐ์ง ์์ผ๋ ค๋ ์ฌ๋์ ๋์ผ๋ก ๋งค์ํด์ ๊ตญํ์์์ ๋น์ ์ด ๋๊ฒ ํ๋ ค๊ณ ํ๋ค. ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋์ ๋ํ์ ๋ณด๋ค ๋ง์ ๋ํ์๋ฅผ ๊ฐ์ง ๋, ๊ทธ ์ฌ๋์ด ๊ตญํ์์์ ๋น์ ๋๋ค.
์๋ฅผ ๋ค์ด์, ๋ง์์ ์ฝ์ ๊ฒฐ๊ณผ ๊ธฐํธ 1๋ฒ์ด 5ํ, ๊ธฐํธ 2๋ฒ์ด 7ํ, ๊ธฐํธ 3๋ฒ์ด 7ํ ๋ผ๊ณ ํ๋ค๋ฉด, ๋ค์์ด๋ 2๋ฒ ํ๋ณด๋ฅผ ์ฐ์ผ๋ ค๊ณ ํ๋ ์ฌ๋ 1๋ช ๊ณผ, 3๋ฒ ํ๋ณด๋ฅผ ์ฐ์ผ๋ ค๊ณ ํ๋ ์ฌ๋ 1๋ช ์ ๋์ผ๋ก ๋งค์ํ๋ฉด, ๊ตญํ์์์ ๋น์ ์ด ๋๋ค.
๋์ผ๋ก ๋งค์ํ ์ฌ๋์ ๋ฐ๋์ ๋ค์์ด๋ฅผ ์ฐ๋๋ค๊ณ ๊ฐ์ ํ๋ค.
๋ค์์ด๊ฐ ๋งค์ํด์ผํ๋ ์ฌ๋์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ๋ณด์ ์ N์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ ์ฐจ๋ก๋๋ก ๊ธฐํธ 1๋ฒ์ ์ฐ์ผ๋ ค๊ณ ํ๋ ์ฌ๋์ ์, ๊ธฐํธ 2๋ฒ์ ์ฐ์ผ๋ ค๊ณ ํ๋ ์, ์ด๋ ๊ฒ ์ด N๊ฐ์ ์ค์ ๊ฑธ์ณ ์ ๋ ฅ์ด ๋ค์ด์จ๋ค. N์ 50๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๊ณ , ๋ํ์๋ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋ค์์ด๊ฐ ๋งค์ํด์ผ ํ๋ ์ฌ๋์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
์ค๋ฒ5.
๊ฐ์ฅ ํ๊ฐ ๋ง์ ์ฌ๋์๊ฒ์ ํ๋ฅผ ๋บ์ด์ค๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ ์ฌ๋ฆด ์๋ง ์๋ค๋ฉด,
์ฐ์ ์์ํ๋ก ํธ๋ ๋ฐฉ๋ฒ์ด ๊ฐ์ฅ ๊ฐ๋จํ๋ค.
๋์ ํ์ด
#include <iostream>
#include <string>
#include <queue>
#include <vector>
using namespace std;
int main(){
int n;
priority_queue<int> pq; // top๊ฐ์ด ๊ฐ์ฅ ํผ
int x;
int ans = 0;
cin >> n;
if(n<=1) {
cout << 0;
return 0;
}
int first;
cin >> first;
for (int i = 1; i < n; ++i){
cin >> x;
pq.push(x);
}
while(pq.top() >= first && !pq.empty()){
int tmp = pq.top();
pq.pop();
tmp -= 1;
pq.push(tmp);
ans++;
first++;
}
cout << ans;
return 0;
}
'๐ ์๊ณ ๋ฆฌ์ฆ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++/BOJ] 1325 : ํจ์จ์ ์ธ ํดํน (BFS/DFS) (1) | 2023.05.14 |
---|---|
[C++/BOJ] 1012 : ์ ๊ธฐ๋ ๋ฐฐ์ถ (BFS/DFS) (0) | 2023.05.12 |
[C++/BOJ] 9012 : ๊ดํธ (์๋ฃ๊ตฌ์กฐ) (1) | 2023.05.06 |
[C++/BOJ] 11286 : ์ ๋๊ฐ ํ (์๋ฃ๊ตฌ์กฐ) (0) | 2023.05.02 |
[C++/BOJ] 5430 : AC (์๋ฃ๊ตฌ์กฐ) (0) | 2023.05.02 |