๐ธ ๋ฌธ์ ์ ๊ทผ ๋ฐฉ์
- stack์ ๊ฐ์ด ์๊ฑฐ๋, ๋ ์์ ๊ฒฝ์ฐ ๋ฃ๋๋ค.
- top์ ์์นํ ๊ฐ์ด ๋ ์์ผ๋ฉด ํด๋น ๊ฐ์ ๋ฐฐ๋ด๊ณ , k๋ฅผ ๊ฐ์์ํจ๋ค.
- k๊ฐ 0์ด๋๋ฉด ๋จ์ ๊ฐ๋ค์ ์คํ์ ๋ฃ๋๋ค.
- ์คํ์ด ๊ฝ ์ฐผ๋๋ฐ, k๊ฐ ๋จ์์๋ค๋ฉด ๋งจ ์์์ k๊ฐ๋ฅผ ๊บผ๋ธ๋ค.
๐ง Source Code
def solution(number, k):
'''
Notes:
1. stack์ ๊ฐ์ด ์๊ฑฐ๋, ๋ ์์ ๊ฒฝ์ฐ ๋ฃ๋๋ค.
2. top์ ์์นํ ๊ฐ์ด ๋ ์์ผ๋ฉด ํด๋น ๊ฐ์ ๋นผ๋ด๊ณ , k๋ฅผ ๊ฐ์์ํจ๋ค.
3. k๊ฐ 0์ด๋๋ฉด ๋จ์ ๊ฐ๋ค์ ์คํ์ ๋ฃ๋๋ค.
4. ์คํ์ด ๊ฝ ์ฐผ๋๋ฐ, k๊ฐ ๋จ์์๋ค๋ฉด ๋งจ ์์์ k๊ฐ๋ฅผ ๊บผ๋ธ๋ค.
Args:
number (str) : ์ฃผ์ด์ง ์ซ์ (๋ฌธ์์ด๋ก ์ฃผ์ด์ง)
k (int) : ์ญ์ ํ ์ซ์ ๊ฐ์
Returns:
answer (str) : ์ ์ฒด์์ k๊ฐ๋ฅผ ์ญ์ ํ ์ซ์ ์ค ๊ฐ์ฅ ํฐ ๊ฐ
'''
answer = ''
stack = []
for i,num in enumerate(number):
while stack and stack[-1]<num and k>0:
stack.pop()
k -= 1
if k==0:
stack += number[i:]
break
stack.append(num)
stack = stack[:-k] if k != 0 else stack
answer = ''.join(stack)
return answer
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฆฐํฐ(์คํ,ํ) (0) | 2021.06.24 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ๊ตฌ๋ช ๋ณดํธ (Greedy) (0) | 2021.06.23 |
ํ๋ก๊ทธ๋๋จธ์ค - ์กฐ์ด์คํฑ (Greedy) (0) | 2021.06.21 |
ํ๋ก๊ทธ๋๋จธ์ค - ์ฒด์ก๋ณต (Greedy) (0) | 2021.06.20 |
ํ๋ก๊ทธ๋๋จธ์ค - H-index (0) | 2021.06.17 |