๋ฌธ์ ๋งํฌ: programmers.co.kr/learn/courses/30/lessons/42883
ํ์ด
k๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ๋ค๋ ๊ฒ์ (number.length() - k)๊ฐ์ ์๋ฅผ ๋ฝ๋ ๊ฒ๊ณผ ๊ฐ๋ค. ๋ฝ์์ผ ๋๋ ์ซ์์ ์๋ฆฟ์๋ฅผ n์ด๋ผ๊ณ ํ๋ฉด, number์์ ๋ค์์๋ถํฐ (n - 1)๊ฐ์ ์๋ฅผ ๋จ๊ฒจ๋๊ณ ๋๋จธ์ง ์ ์ค์์ ์ ์ผ ํฐ ์๋ฅผ ๋ฝ์ผ๋ฉด ๋๋ค. ๋ค์ ์๋ ๋ฐฉ๊ธ ๋ฝ์ ์ ๋ค์๋ถํฐ ๋ค์์ (n - 2)๊ฐ์ ์๋ฅผ ๋จ๊ฒจ๋๊ณ ์ ์ผ ํฐ ์๋ฅผ ๋ฝ๋๋ค. ์ด๋ฅผ n๊ฐ ์๋ฅผ ๋ฝ์ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
n: ๋ฝ์์ผ ๋๋ ์ซ์์ ๊ฐ์
picked: ์ด์ ์ ๋ฝ์ ์ซ์์ index
number = "4177252841"์ผ ๋ ํ์ด
- 6๋ฒ์งธ ์๋ฆฌ
=> number ๋ค์์ 5๊ฐ ์ ์ ์ธ => "41772" => ์ต๋๊ฐ 7 ์ ํ, picked = 2 - 5๋ฒ์งธ ์๋ฆฌ
=> number ๋ค์์ 4๊ฐ ์ ์ ์ธ => "725" => ์ต๋๊ฐ 7 ์ ํ, picked = 3 - 4๋ฒ์งธ ์๋ฆฌ
=> number ๋ค์์ 3๊ฐ ์ ์ ์ธ => "252" => ์ต๋๊ฐ 5 ์ ํ, picked = 5 - 3๋ฒ์งธ ์๋ฆฌ
=> number ๋ค์์ 2๊ฐ ์ ์ ์ธ => "28" => ์ต๋๊ฐ 8 ์ ํ, picked = 7 - 2๋ฒ์งธ ์๋ฆฌ
=> number ๋ค์์ 1๊ฐ ์ ์ ์ธ => "4" => ์ต๋๊ฐ 4 ์ ํ, picked = 8 - 1๋ฒ์งธ ์๋ฆฌ
=> number ๋ค์์ 0๊ฐ ์ ์ ์ธ => "1" => ์ต๋๊ฐ 1 ์ ํ, picked = 9
์์ค์ฝ๋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <string>
#include <vector>
using namespace std;
string solution(string number, int k) {
string answer = "";
int n = number.length() - k;
int picked = -1;
for(int i = n; i > 0; i--) {
int max = -1;
for(int j = picked + 1; j <= number.length() - i; j++) {
if((number[j] - '0') > max) {
max = number[j] - '0';
picked = j;
}
}
answer += number[picked];
}
return answer;
}
|
cs |
๊ณต๋ถํ ๊ฒ์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ์์ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค :)
728x90
'Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค / C++] ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2021.01.22 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค / C++] ๊ตฌ๋ช ๋ณดํธ (0) | 2021.01.11 |
[ํ๋ก๊ทธ๋๋จธ์ค / C++] ์กฐ์ด์คํฑ (0) | 2021.01.10 |
[ํ๋ก๊ทธ๋๋จธ์ค / C++] ์ฒด์ก๋ณต (0) | 2021.01.10 |
[ํ๋ก๊ทธ๋๋จธ์ค / C++] ์ ๊ตญ์ฌ์ฌ ํ์ด (0) | 2020.08.16 |