์ด๋ค ์ซ์์์ k๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ์ ๋ ์ป์ ์ ์๋ ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ซ์ 1924์์ ์ ๋ ๊ฐ๋ฅผ ์ ๊ฑฐํ๋ฉด [19, 12, 14, 92, 94, 24] ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ์ค ๊ฐ์ฅ ํฐ ์ซ์๋ 94 ์ ๋๋ค.
๋ฌธ์์ด ํ์์ผ๋ก ์ซ์ number์ ์ ๊ฑฐํ ์์ ๊ฐ์ k๊ฐ solution ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. number์์ k ๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ์ ๋ ๋ง๋ค ์ ์๋ ์ ์ค ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๋ฌธ์์ด ํํ๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ์กฐ๊ฑด
- number๋ 1์๋ฆฌ ์ด์, 1,000,000์๋ฆฌ ์ดํ์ธ ์ซ์์ ๋๋ค.
- k๋ 1 ์ด์ number์ ์๋ฆฟ์ ๋ฏธ๋ง์ธ ์์ฐ์์ ๋๋ค.
์ ๋ ฅ
number = "1924" k = 2
number = "1231234" k = 3
number = "4177252841" k = 4
์ถ๋ ฅ
"94"
"3234"
"775841"
1) n๋ฒ์งธ ์ซ์๊ฐ ๋์ค๋ ๋ฒ์๋ฅผ ๊ตฌํจ
2) ๋ฒ์ ๋ด์์ ๊ฐ์ฅ ํฐ ๊ฐ๊ณผ max_idx+1์ ํ idx๋ฅผ ๊ตฌํจ
3) ๊ฐ์ฅ ํฐ ๊ฐ์ string์ ์ถ๊ฐํจ
1) ๋ฒ์ ๋ด์์ ๊ฐ์ฅ ํฐ ๊ฐ๊ณผ max_idx+1์ ํ idx๋ฅผ ๊ตฌํจ
if (number.charAt(j) > max) {
max = number.charAt(j);
idx = j + 1;
}
2) ๊ฐ์ฅ ํฐ ๊ฐ์ string์ ์ถ๊ฐํจ
answer.append(max);
class Solution {
public String solution(String number, int k) {
StringBuilder answer = new StringBuilder();
char max;
int idx = 0;
for(int i=0; i<number.length()-k; i++){
max = '0';
for(int j=idx; j<=k+i; j++){
if(number.charAt(j) > max){
max = number.charAt(j);
idx = j + 1;
}
}
answer.append(max);
}
return answer.toString();
}
}
์ฑ๊ณต~