๋ฌธ์ ๋งํฌ: www.acmicpc.net/problem/1138
ํ์ด
ํค๊ฐ ์์ ์ฌ๋๋ถํฐ ๋ช ๋ฒ์งธ ์๋ฆฌ์ ์๋ฉด ๋๋์ง ์ ํ๋ค. ์ ๋ต ๋ฐฐ์ด์ 0์ผ๋ก ์ด๊ธฐํํ ๋ค์, ์๊ธฐ๋ณด๋ค ํฐ ์ฌ๋์ด ์ผ์ชฝ์ 2๋ช ์๋ค๋ฉด 3๋ฒ์งธ ์๋ฆฌ์ ์๋ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ์์ ํค ์์๋๋ก ํ์ธํ๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ ์ ๋ต ๋ฐฐ์ด์ ๋ค์ด๊ฐ ์ฌ๋(์ค์ ์ ์ฌ๋)์ ๋ชจ๋ ์์ ๋ณด๋ค ํค๊ฐ ์๋ค๊ณ ์๊ฐํ ์ ์๋ค.
์์ ์ ๋ ฅ์ฒ๋ผ [2, 1, 1, 0]์ด ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ก์ ๋ answer์ ๋ค์ ์์๋ก ๊ณ์ฐ๋๋ค. answer์ ์ด๊ธฐ ์ํ๋ [0, 0, 0, 0]์ด๊ณ , ์ค์ ์ ์์๋๋ก ํค๋ฅผ ์ ์ฅํ๋ค.
- ํค๊ฐ 1์ธ ์ฌ๋์ ์ผ์ชฝ์ 2๋ช
์ด ์์ผ๋ฏ๋ก answer์์ 0์ ๋ ๋ฒ ๊ฑด๋๋ฐ๊ณ 3๋ฒ์งธ ์๋ฆฌ์ ์ค์ ์ ๋ค.
answer = [0, 0, 1, 0] - ํค๊ฐ 2์ธ ์ฌ๋์ ์ผ์ชฝ์ 1๋ช
์ด ์์ผ๋ฏ๋ก answer์์ 0์ ํ ๋ฒ ๊ฑด๋ ๋ฐ๊ณ 2๋ฒ์งธ ์๋ฆฌ์ ์ค์ ์ ๋ค.
answer = [0, 2, 1, 0] - ํค๊ฐ 3์ธ ์ฌ๋์ ์ผ์ชฝ์ 1๋ช
์ด ์์ผ๋ฏ๋ก answer์์ 0์ ํ ๋ฒ ๊ฑด๋๋ฐ๊ณ , ์ด๋ฏธ ์ค์ ์ 2์ 1์ ๊ฑด๋ ๋ฐ๊ณ 4๋ฒ์งธ ์๋ฆฌ์ ์ค์ ์ ๋ค.
answer = [0, 2, 1, 3] - ํค๊ฐ 4์ธ ์ฌ๋์ ์ผ์ชฝ์ 0๋ช
์ด ์์ผ๋ฏ๋ก ๋งจ ์์ ์ค์ ์ ๋ค.
answer = [4, 2, 1, 3]
์์ค์ฝ๋
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
31
32
33
|
//1138๋ฒ: ํ ์ค๋ก ์๊ธฐ
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int N;
cin >> N;
vector<int> v(N), answer(N);
for(int i = 0; i < N; i++)
cin >> v[i];
for(int i = 0; i < N; i++) {
int j = 0;
while(v[i] != 0) { //์ค์ ์ ์์ ์ฐพ๊ธฐ
if(answer[j] == 0) {
v[i]--;
}
j++;
}
while(answer[j] != 0) j++; //์ฌ๋์ด ์์์ผ๋ฉด ๋ค์์ผ๋ก ์ด๋
answer[j] = i + 1;
}
for(int i = 0; i < N; i++)
cout << answer[i] << ' ';
return 0;
}
|
cs |
๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ์์ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค :)
'Algorithm > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค BOJ / C++] 2504๋ฒ: ๊ดํธ์ ๊ฐ (0) | 2021.01.13 |
---|---|
[๋ฐฑ์ค BOJ / C++] 1541๋ฒ: ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2020.12.29 |
[๋ฐฑ์ค BOJ / C++] 2217๋ฒ: ๋กํ (0) | 2020.12.28 |
[๋ฐฑ์ค BOJ / C++] 11399๋ฒ: ATM (0) | 2020.12.28 |
[๋ฐฑ์ค BOJ / C++] 11047๋ฒ: ๋์ 0 (0) | 2020.12.28 |