๋ฌธ์ ์ค๋ช
์ด๋ค ์ซ์์์ 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" |
๋ฌธ์ ํ์ด
ํ๋์ ์คํ์๋ค๊ฐ ๋ฌธ์์ด์ ์์๋๋ก ๋น๊ตํ๋ฉฐ ํฐ ์๋ฅผ ๋ฃ์ด์ฃผ๊ณ , ์ถ๋ ฅ์์ ์ด๋ฅผ ๋ฆฌ๋ฒ์คํด์ ๋นผ๋ด๋ฉด ์ ๋ต์ ๋์ถ ํ ์ ์๋ค.
1๏ธโฃ ์ผ๋จ ๋น๊ต๋ฅผ ์ํด ์ฒ์ ์๋ ์คํ์ ๋ฃ์ด์ค๋ค.
2๏ธโฃ ์คํ.peek() -> 1 ๊ณผ ๊ทธ ๋ค์ ์์ธ 2์ ๋น๊ตํ๋ 2๊ฐ ๋ ํฌ๋ค. 1์ ์ ๊ฑฐ ( ์คํ.pop()์ผ๋ก ๋นผ๋ด๊ณ k๋ฅผ ๊ฐ์์์ผ์ค๋ค.)ํ๊ณ , 2๋ฅผ ์คํ์ push ํด์ค๋ค
3๏ธโฃ ์ด๋ฐ ๊ณผ์ ์ ๊ฑฐ์ณ ๊ฒฐ๊ตญ ์คํ์ 3๋ฐ์ ์๋๋ฐ 3 ๋ค์ ์์ธ 1๊ณผ ๋น๊ตํ๋ 1์ด ์๋ค. ์ด๋ ๊ทธ๋ฅ ์คํ์ ๋ฃ์ด๋์.
4๏ธโฃ ์คํ.peek() -> 1๊ณผ ๊ทธ ๋ค์ ์์ธ 2๋ฅผ ๋น๊ตํ๋, 2๊ฐ ๋ ํฌ๋ค. ์๊นํ๋๋ก ์ ๊ฑฐ ๊ณผ์ ํ์ 2๋ฅผ ์คํ์ pushํ๋ค. k๊ฐ 0์ด ๋์๋ค.
ํด๋น ๊ณผ์ ์ ์ ์ ํ ๋ฐ๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์ผ๋ก ๊ตฌํํ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๋ฌธ์ ๋ฐ์
์ฐ์๋ ์ซ์ ์ผ๋๋ k๊ฐ ๊ฐ์๋์ง๋ ์๋๋ค. ์ฆ, ์ ๊ฑฐ ๊ณผ์ ์ด ๋ฐ๋์ด ์๋๋ค.
=> ๊ทธ๋ฅ ์์ธ์ฒ๋ฆฌ๋ก์ ๋ฆฌ๋ฒ์ค ์ถ๋ ฅ ํ์ k ๋งํผ ์๋ผ์ฃผ์๋ค.
์ ๋ต
import java.util.*;
class Solution {
public String solution(String number, int k) {
Stack<Character> stStack = new Stack<>();
for (int i = 0; i < number.length(); i++){
// k๊ฐ 0์ด ๋ ๋๊น์ง ๋ฐ๋ณต, stStack.peek()๋ณด๋ค ํฌ๋ฉด ๊ธฐ์กด๊ฑฐ ์ ๊ฑฐํ๊ณ ๋ค์ ๋ด๊ธฐ
while (!stStack.isEmpty() && k > 0 && number.charAt(i) > stStack.peek()){
stStack.pop();
k--;
}
// ์คํ์ ๋ฃ๊ธฐ
stStack.push(number.charAt(i));
}
// Stack์์ ๋ฌธ์๋ฅผ ๊บผ๋ด์ StringBuilder์ ์ถ๊ฐ
StringBuilder sb = new StringBuilder();
while (!stStack.isEmpty()) {
// ์ธ๋ฑ์ค 0๋ถํฐ ์ฐจ๋ก๋๋ก -> ๋ฆฌ๋ฒ์ค
sb.insert(0, stStack.pop());
}
// ๋จ์ ์ซ์(5,4,3,2,1์ผ ๊ฒฝ์ฐ k๊ฐ ๋จ์)๋ ๋ค์์ ์ ๊ฑฐ
sb.delete(sb.length() - k, sb.length());
// `StringBuilder`๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ๊ณ ๋ฐํ
return sb.toString();
}
}
ํฐ ์ ๋ง๋ค๊ธฐ ํฐ ์ ๋ง๋ค๊ธฐ ํฐ ์ ๋ง๋ค๊ธฐ ํฐ ์ ๋ง๋ค๊ธฐ ํฐ ์ ๋ง๋ค๊ธฐ ํฐ ์ ๋ง๋ค๊ธฐ ํฐ ์ ๋ง๋ค๊ธฐ ํฐ ์ ๋ง๋ค๊ธฐ