๋ฌธ์
์ํ ์ง์ ์ ํ N๋๋ฅผ ์ธ์ ์ต๋๋ค. ๋ชจ๋ ํ์ ๊ผญ๋๊ธฐ์๋ ์ ํธ๋ฅผ ์ก/์์ ํ๋ ์ฅ์น๋ฅผ ์ค์นํ์ต๋๋ค. ๋ฐ์ฌํ ์ ํธ๋ ์ ํธ๋ฅผ ๋ณด๋ธ ํ๋ณด๋ค ๋์ ํ์์๋ง ์์ ํฉ๋๋ค. ๋ํ, ํ ๋ฒ ์์ ๋ ์ ํธ๋ ๋ค๋ฅธ ํ์ผ๋ก ์ก์ ๋์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋์ด๊ฐ 6, 9, 5, 7, 4์ธ ๋ค์ฏ ํ์ด ์ผ์ชฝ์ผ๋ก ๋์์ ๋ ์ด์ ์ ํธ๋ฅผ ๋ฐ์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด, ํ์ ๋ค์๊ณผ ๊ฐ์ด ์ ํธ๋ฅผ ์ฃผ๊ณ ๋ฐ์ต๋๋ค. ๋์ด๊ฐ 4์ธ ๋ค์ฏ ๋ฒ์งธ ํ์์ ๋ฐ์ฌํ ์ ํธ๋ ๋์ด๊ฐ 7์ธ ๋ค ๋ฒ์งธ ํ์ด ์์ ํ๊ณ , ๋์ด๊ฐ 7์ธ ๋ค ๋ฒ์งธ ํ์ ์ ํธ๋ ๋์ด๊ฐ 9์ธ ๋ ๋ฒ์งธ ํ์ด, ๋์ด๊ฐ 5์ธ ์ธ ๋ฒ์งธ ํ์ ์ ํธ๋ ๋์ด๊ฐ 9์ธ ๋ ๋ฒ์งธ ํ์ด ์์ ํฉ๋๋ค. ๋์ด๊ฐ 9์ธ ๋ ๋ฒ์งธ ํ๊ณผ ๋์ด๊ฐ 6์ธ ์ฒซ ๋ฒ์งธ ํ์ด ๋ณด๋ธ ๋ ์ด์ ์ ํธ๋ ์ด๋ค ํ์์๋ ์์ ํ ์ ์์ต๋๋ค.
์ก์ ํ(๋์ด) | ์์ ํ(๋์ด) |
5(4) | 4(7) |
4(7) | 2(9) |
3(5) | 2(9) |
2(9) | - |
1(6) | - |
๋งจ ์ผ์ชฝ๋ถํฐ ์์๋๋ก ํ์ ๋์ด๋ฅผ ๋ด์ ๋ฐฐ์ด heights๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ๊ฐ ํ์ด ์ ์ ํธ๋ฅผ ์ด๋ ํ์์ ๋ฐ์๋์ง ๊ธฐ๋กํ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- heights๋ ๊ธธ์ด 2 ์ด์ 100 ์ดํ์ธ ์ ์ ๋ฐฐ์ด์ ๋๋ค.
- ๋ชจ๋ ํ์ ๋์ด๋ 1 ์ด์ 100 ์ดํ์ ๋๋ค.
- ์ ํธ๋ฅผ ์์ ํ๋ ํ์ด ์์ผ๋ฉด 0์ผ๋ก ํ์ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #1
heights | return |
[6,9,5,7,4] | [0,0,2,2,4] |
[3,9,9,3,5,7,2] | [0,0,0,3,3,3,6] |
[1,5,3,6,7,6,5] | [0,0,2,0,0,5,6] |
์ ์ถ๋ ฅ ์ #2
[1,2,3] ๋ฒ์งธ ํ์ด ์ ์ ํธ๋ ์๋ฌด๋ ์์ ํ์ง ์์ต๋๋ค.
[4,5,6] ๋ฒ์งธ ํ์ด ์ ์ ํธ๋ 3๋ฒ์งธ ํ์ด ์์ ํฉ๋๋ค.
[7] ๋ฒ์งธ ํ์ด ์ ์ ํธ๋ 6๋ฒ์งธ ํ์ด ์์ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
[1,2,4,5] ๋ฒ์งธ ํ์ด ์ ์ ํธ๋ ์๋ฌด๋ ์์ ํ์ง ์์ต๋๋ค.
[3] ๋ฒ์งธ ํ์ด ์ ์ ํธ๋ 2๋ฒ์งธ ํ์ด ์์ ํฉ๋๋ค.
[6] ๋ฒ์งธ ํ์ด ์ ์ ํธ๋ 5๋ฒ์งธ ํ์ด ์์ ํฉ๋๋ค.
[7] ๋ฒ์งธ ํ์ด ์ ์ ํธ๋ 6๋ฒ์งธ ํ์ด ์์ ํฉ๋๋ค.
ํด๊ฒฐ
- ์ง๊ด์ ์ผ๋ก ๋งจ ์ค๋ฅธ์ชฝ ํ์์ ๋ถํฐ ์ ํธ๊ฐ ๋ช ๋ฒ์งธ ํ์ผ๋ก ์์ ๋๋์ง ํ์ธํ๋ค.
- ์ด์ค for๋ฌธ์ ํ์ฉํ์ฌ i ๋ฒ์งธ ํ์ ๋์ด pre๊ฐ heights[j]๋ณด๋ค ์๋ค๋ฉด
- i ๋ฒ์งธ ํ์ j ๋ฒ์งธ ํ์ ๋๋ฌํ๋ค.
- ์ ๋ต์ ์ฐพ์์ผ๋ฉด flg = 1์ด ๋๊ณ , ์ ๋ต ๋ฆฌ์คํธ์ ์ ์ฅ๋๋ค.
- ๋ง์ฝ ์๋ฌด๋ฐ ํ์ ์ฐพ์ง ๋ชปํ๋ค๋ฉด ์ ๋ต ๋ฆฌ์คํธ i ๋ฒ์งธ์ 0์ด ์ ์ฅ๋๋ค.
- ๋ง์ง๋ง์ ๋งจ ์ค๋ฅธ์ชฝ ๋ถํฐ ์ ๋ต ๋ฆฌ์คํธ๋ฅผ ๊ตฌ์ฑํ์ผ๋ฏ๋ก reverse ํด์ ๋ฐํํด์ฃผ๋ฉด ์ ๋ต์ด๋ค.
์ฝ๋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> heights) {
vector<int> answer;
int flg;
for (int i = heights.size() - 1; i >= 0; i--) {
int pre = heights[i]; flg = 0;
for (int j = i - 1; j >= 0; j--) {
if (heights[j] > pre) {
answer.push_back(j+1);
flg = 1;
break;
}
}
if (!flg) answer.push_back(0);
}
reverse(answer.begin(), answer.end());
return answer;
}
|
cs |
'๐ฅ PS(Problem Solving) ๐ฅ > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] ์คํํ, ์ฃผ์๊ฐ๊ฒฉ (0) | 2020.07.04 |
---|---|
[programmers] ์คํํ, ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ (0) | 2020.07.03 |
[programmers] Summer/Winter Coding(2019) ๋ฉ์ฉกํ ์ฌ๊ฐํ (0) | 2020.06.02 |
[programmers] 2020 kakao, ๋ฌธ์์ด ์์ถ (0) | 2020.05.12 |
[programmers] ์์ ํ์, ์นดํซ (0) | 2020.03.11 |
๋๊ธ