https://school.programmers.co.kr/learn/courses/30/lessons/42883
๋ฌธ์ ์ค๋ช
์ด๋ค ์ซ์์์ k๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ์ ๋ ์ป์ ์ ์๋ ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ซ์ 1924์์ ์ ๋ ๊ฐ๋ฅผ ์ ๊ฑฐํ๋ฉด [19, 12, 14, 92, 94, 24] ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ์ค ๊ฐ์ฅ ํฐ ์ซ์๋ 94 ์ ๋๋ค.
๋ฌธ์์ด ํ์์ผ๋ก ์ซ์ number์ ์ ๊ฑฐํ ์์ ๊ฐ์ k๊ฐ solution ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. number์์ k ๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ์ ๋ ๋ง๋ค ์ ์๋ ์ ์ค ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๋ฌธ์์ด ํํ๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์กฐ๊ฑด
- number๋ 2์๋ฆฌ ์ด์, 1,000,000์๋ฆฌ ์ดํ์ธ ์ซ์์ ๋๋ค.
- k๋ 1 ์ด์ number์ ์๋ฆฟ์ ๋ฏธ๋ง์ธ ์์ฐ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
number | k | return |
"1924" | 2 | "94" |
"1231234" | 3 | "3234" |
"4177252841" | 4 | "775841" |
๋ด ํ์ด
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
string solution(string number, int k) {
string answer = "";
int start_idx = 0;
int left_idx = k; // ๋จ๊ฒจ์ผํ ๋ฌธ์ ๊ฐ์
while(left_idx < number.size())
{
char max = '0';
// (์์ ์์น ~ ๋นผ์ผํ ๋ฌธ์์ ๊ฐ์) ์ค์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ ๋ต์ ์ถ๊ฐ
for(int i = start_idx; i <= left_idx; ++i)
{
if(number[i] > max)
{
max = number[i];
start_idx = i + 1;
}
}
answer += max;
++left_idx;
}
return answer;
}
'๐ฅ๏ธ Study Note > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค / level.3 / ์ฌ ์ฐ๊ฒฐํ๊ธฐ(C++) (0) | 2023.04.21 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค / level.2 / ๊ตฌ๋ช ๋ณดํธ(C++) (0) | 2023.04.20 |
ํ๋ก๊ทธ๋๋จธ์ค / level.3 / ์์ดํ ์ค๊ธฐ(C++) (0) | 2023.04.17 |
ํ๋ก๊ทธ๋๋จธ์ค / level.3 / ์ฌํ๊ฒฝ๋ก(C++) (0) | 2023.04.14 |
ํ๋ก๊ทธ๋๋จธ์ค / level.3 / ๋จ์ด ๋ณํ(C++) (0) | 2023.04.13 |