ํฐ์คํ ๋ฆฌ ๋ทฐ
๐จโ๐ป ์ฝ๋ฉํ
์คํธ/ํ๋ก๊ทธ๋๋จธ์ค
ํ๋ก๊ทธ๋๋จธ์ค: ํฐ ์ ๋ง๋ค๊ธฐ
dirmathfl 2020. 10. 23. 23:17728x90
๋ฐ์ํ
๋ฌธ์
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ํฐ ์ ๋ง๋ค๊ธฐ
programmers.co.kr
๋ฌธ์ ํ์ด
์ด๋ค ์ซ์์์ K๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ์ ๋ ์ป์ ์ ์๋ ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด์๋ stack
์ ์ฌ์ฉํ๋ฉด ํด๊ฒฐํ ์ ์๋ค.
stack
์ ๊ฐ์ด ์๋ค๋ฉด ์๋ฅผappend
ํ๋ค.stack
์ ๊ฐ์ด ์๋ค๋ฉด ํ์ฌ์ ์์top
์ ๋น๊ตํ์ฌ ๊ฐ์ด ๊ฐ์ด ํฌ์ง ์๋ ๊ฒฝ์ฐpop
ํ๋ค.- ๋ฌธ์ ์ ์ ๊ฑฐํ ์ ์๋
K
๊ฐ ์ฃผ์ด์ง๋ฏ๋ก, ์ด ์ญ์ ๊ฐ์ด ํ๋จํ์ฌ์ผ ํ๋ค.
- ๋ฌธ์ ์ ์ ๊ฑฐํ ์ ์๋
- ๋ง์ฝ
K
๊ฐ 0์ด ๋๋ค๋ฉด ์ฆ์ ์ค๋จํ๊ณ , ๋จ์ ์๋ค์stack
์ ์ฝ์ ํ๋ค.
์ฝ๋
def solution(number, k):
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
return "".join(stack)
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค: ๋๋์ง (0) | 2020.10.24 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค: ์กฐ์ด์คํฑ (0) | 2020.10.23 |
ํ๋ก๊ทธ๋๋จธ์ค: SQL - IS NULL (0) | 2020.10.21 |
ํ๋ก๊ทธ๋๋จธ์ค: SQL - SUM, MAX, MIN (0) | 2020.10.21 |
ํ๋ก๊ทธ๋๋จธ์ค: SQL - SELECT (0) | 2020.10.21 |
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ