def solution(num, k):
max_num = []
for i, n in enumerate(num):
while len(max_num) > 0 and max_num[-1] < n and k > 0:
max_num.pop()
k -= 1
if k == 0:
max_num += list(num[i:])
break
max_num.append(n)
max_num = max_num[:-k] if k > 0 else max_num
return(''.join(max_num))
โท ์ด ๋ฌธ์ ๋ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ฌ ํธ๋ ๋ฌธ์ ๋ก, ์ฃผ์ด์ง ๋ฌธ์์ด์ ๋ ๋ฒ์งธ ์ซ์๋ถํฐ ์ด์ ์ ์ซ์์ ๋น๊ต๋ฅผ ํตํด ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๋ง๋ค์ด ๋๊ฐ์ผ ํ๋ค.
โท ์ ์ฝ๋์ ๋ ผ๋ฆฌ๋ฅผ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
1. max_num๋ผ๋ ๋น ๋ฆฌ์คํธ๋ฅผ ๋ง๋ ๋ค.
2. ์ฃผ์ด์ง ๋ฌธ์์ด์ ์ฒซ ๋ฒ์งธ ์ซ์๋ ๋ฐ๋์ max_num ๋ฆฌ์คํธ์ ์์๋ก ํ ๋นํ๋ค. ๋ ๋ฒ์งธ ์ซ์๋ถํฐ๋ max_num ๋ฆฌ์คํธ์ ๋ง์ง๋ง ์ซ์๋ณด๋ค ํฌ๋ค๋ฉด, ํด๋น ์ซ์๋ฅผ max_num ๋ฆฌ์คํธ์์ ์ ๊ฑฐํ๋ค. ๋ ์ซ์์ ๋น๊ต ๊ฒฐ๊ณผ์ ์๊ด์์ด ํด๋น ์์์ ์ซ์๋ฅผ max_num ๋ฆฌ์คํธ์ ํ ๋นํ๋ค.
3. k ๋ณ์๊ฐ 0์ด๋ฉด max_num ๋ฆฌ์คํธ๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด ํจ์์ ๊ฒฐ๊ณผ๋ก ์ถ๋ ฅํ๊ณ , 0์ด ์๋๋ผ๋ฉด k ๋ณ์ ๋งํผ ์ค๋ฅธ์ชฝ ๋๋ถํฐ ์ซ์๋ฅผ ์ ๊ฑฐํ ๊ฒ์ ํจ์์ ๊ฒฐ๊ณผ๋ก ์ถ๋ ฅํ๋ค.
โถ enumerate ํจ์๋ ์ฒซ ๋ฒ์งธ ์ธ์์ ๊ฐ๊ณผ ์์ ์ ๋ณด๋ฅผ for ๋ฌธ์ ๋ ์ธ์์ ํ ๋นํ๋ ์ญํ ์ ํ๋ค.
'Programming > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Level 2] ์กฐ์ด์คํฑ (0) | 2020.10.28 |
---|---|
[Level 2] ๋ฌธ์์ด ์์ถ (0) | 2020.10.07 |
[Level 2] ๊ตฌ๋ช ๋ณดํธ (0) | 2020.10.06 |
[Level 2] ์ ํ๋ฒํธ ๋ชฉ๋ก (Python) (0) | 2020.10.05 |
[Level 2] H-Index (Python) (0) | 2020.10.05 |