๐กsolutions )
๐ฌ ์ด๋ฏธ k๊ฐ ๋งํผ์ ์ซ์ ์ญ์ ๋ฅผ ์๋ฃํ ๊ฒฝ์ฐ์๋ s ์คํ์ ๋ชจ๋ ๋ฃ๊ธฐ
๐ฌ ์ฒซ๋ฒ์งธ ์ซ์๋ ๋จผ์ ๋ฃ๊ณ ์์ํ๋ฉฐ, while๋ฌธ ์์์ s ์คํ์ ๋ฃ์ด์ผ ํ๋ ์ซ์(i)์ ๊ธฐ์กด s ์คํ์ ๋ด๊ฒจ์๋ ์ซ์๋ค์ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๊ธฐ -> i๊ฐ ๊ธฐ์กด ์ซ์๋ณด๋ค ํฌ๋ฉด ๊ธฐ์กด ์ซ์ ์ ๊ฑฐ(popํ๊ณ cnt +1)
๐ฌ ์ด๋ฏธ k๊ฐ๋ฅผ ๋ชจ๋ ์ญ์ ํ๊ฑฐ๋ i๊ฐ ๊ธฐ์กด ์ซ์๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ์๋ break๋ฅผ ๊ฑธ์ด while๋ฌธ ์ค๋จ
๐ฌ ์ซ์๋ฅผ ๋ค ๋ฃ์๋๋ฐ ์์ง ์ ๊ฑฐํด์ผ ํ k๊ฐ ๋จ์ ์๋ ๊ฒฝ์ฐ, ๋งจ ๋ค์์๋ถํฐ pop์ผ๋ก ๋จ์ k๊ฐ์ ๋งํผ ์ซ์ ์ญ์
๐ฌ ์ฐธ๊ณ ๋ก ๋์ ๊ฒฝ์ฐ ์ฒซ ์๋์์ ๋ง์ง๋ง 12๋ฒ ์ผ์ด์ค ํต๊ณผํ์ง ๋ชป ํ๊ณ , ์๋ ๋ ๊ฐ์ง ํ ์คํธ์ผ์ด์ค๋ฅผ ๋ฃ์ด ์ฝ๋๋ฅผ ์์ ํ ํ ํต๊ณผํ ์ ์์๋ค.
# 12๋ฒ ๋๋น ํ
์คํธ์ผ์ด์ค |
๐ซcode )
def solution(number, k):
s = []
cnt = 0
for i in number:
if cnt == k:
s.append(i)
else:
if not s:
s.append(i)
print(s)
else:
while s:
if cnt == k or i <= s[-1]:
break
if i > s[-1]:
s.pop()
cnt += 1
s.append(i)
while cnt !=k:
s.pop()
cnt += 1
return ''.join(s)
๐ description )
๋ฌธ์ ์ถ์ฒ : programmers.co.kr/learn/courses/30/lessons/42883?language=python3
๋ฌธ์ ์ค๋ช ์ด๋ค ์ซ์์์ k๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ์ ๋ ์ป์ ์ ์๋ ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ซ์ 1924์์ ์ ๋ ๊ฐ๋ฅผ ์ ๊ฑฐํ๋ฉด [19, 12, 14, 92, 94, 24] ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ์ค ๊ฐ์ฅ ํฐ ์ซ์๋ 94 ์ ๋๋ค. ๋ฌธ์์ด ํ์์ผ๋ก ์ซ์ number์ ์ ๊ฑฐํ ์์ ๊ฐ์ k๊ฐ solution ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. number์์ k ๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ์ ๋ ๋ง๋ค ์ ์๋ ์ ์ค ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๋ฌธ์์ด ํํ๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์. ์ ํ ์กฐ๊ฑด
์ ์ถ๋ ฅ ์
|