๋ฌธ์
์ด๋ค ์ซ์์์ 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" |
๋์ ์ฝ๋ ๋ฐ ์ ๊ทผ ๋ฐฉ์
def solution(number, k):
p = len(number) - k
array = []
print(p)
number = list(map(int,number))
print(number)
while True:
if number[0] > number[1]:
number.pop(1)
elif number[0] < number[1]:
number.pop(0)
elif number[0] == number[1]:
number[0] = number[number.count(number[0])]
if len(number) == p:
break
return ''.join(map(str, number))
๋ถ์ > ์ด ๋ฌธ์ ๋ฅผ ์ฒ์ ๋ดค์ ๋ ์๊ฐ๋ณด๋ค ๊ฐ๋จํ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์๋ฐ, ์ ์ํ๋ ค์ ๋นํฉํ์๋ค. ๋์ ๊ฒฝ์ฐ number ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ p๊ฐ ๋ ๋๊น์ง ๋ฐฐ์ด์ ์ฒซ๋ฒ์งธ ์์์ ๋๋ฒ์งธ ์์๋ฅผ ๋น๊ตํ๋ฉด์ ์ ์ ์๋ฅผ popํ๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ๋ค. ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ผ๋ก๋ ๋น๊ตํ๋ ์์๋ค์ด ๊ฐ์ ์์ผ ๋๋ฅผ ํด๊ฒฐํ์ง ๋ชปํ๋ค. ๊ทธ๋์ ํ ์คํธ์ผ์ด์ค 3๋ฒ์ ๊ฒฝ์ฐ ์ํ๋ ๋ต์ด ๋์ค์ง ๋ชปํ๊ณ ์ฝ๋๊ฐ ๊ผฌ์ด๊ณ ๋ง์๋ค.
ํด์ค ์ฝ๋
def solution(number, k):
answer = []
for num in number:
# answer์ ๊ฐ์ด ์กด์ฌํ๋ฉฐ, k๋ 0๋ณด๋ค ํฌ๊ณ , answer์ ์ต๊ทผ ๊ฐ์ด ํ์ฌ์ num๋ณด๋ค ์์ผ๋ฉด
while answer and k > 0 and answer[-1] < num:
# answer์ ์ต๊ทผ ๊ฐ์ ์ ๊ฑฐํ๊ณ k๋ -1 ํด์ค๋ค
answer.pop()
k -= 1
# ํ์ฌ์ num๊ฐ์ ๋ฌด์กฐ๊ฑด์ ์ผ๋ก answer์ ๋ฃ์ด์ค๋ค
answer.append(num)
# answer๋ number์ ๊ธธ์ด - k๋งํผ ์ฌ๋ผ์ด์ฑ ํด์ค๋ค.
# -> ์ฌ๋ผ์ด์ฑ์ index ๋ฐ๊นฅ์ผ๋ก ๋๊ฐ๋ ๊ด์ฐฎ์!
# ์ผ๋ฐ์ ์ผ๋ก k๋ 0์ผํ
๋ฐ ex) k = 3 number = 1000000 ์ด๋ฐ ๊ฒฝ์ฐ์ k๋ ์ฒ์ ์ธํ๋ฐ์ ๊ทธ๋๋ก ์ ์ง๋จ
# ์ด๋ด ๋ ๋ต์ ๋ท ์ซ์๋ฅผ k๊ฐ๋งํผ ์์ ์ค 1000 ์ด๋ฏ๋ก ์ฌ๋ผ์ด์ฑ์ len(number) - k๋ก ํด์ฃผ๋ ๊ฒ
answer = ''.join(answer[:len(number)-k])
return answer
๋ถ์ > ์ฐ์ ๋น ๋ฐฐ์ด์ answer ์คํ์ ๋ง๋ ํ์ answer ๊ฐ์ด ์กด์ฌํ๋ฉฐ k๋ 0๋ณด๋ค ํฌ๊ณ answer์ ๊ฐ์ฅ ์ต๊ทผ ๊ฐ์ด ํ์ฌ num๋ณด๋ค ์์ ๋ answer์ ๊ฐ์ฅ ์ต๊ทผ ๊ฐ์ popํ ํ ์ต์ข popํ ์๋ฅผ ๋ํ๋ด๋ k์์ 1์ ๋นผ๊ฐ๋ฉฐ ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฐ๋ค. ๊ทธ๋ฆฌ๊ณ num๊ฐ์ ๊ณ์ appendํ์ฌ answer[-1]๊ฐ๊ณผ ๊ณ์ ๋น๊ตํ๋ค. ์ต์ข ์ถ๋ ฅ๊ฐ์ number ๊ฐ์ด 1000000 ์ด๊ณ k = 3 ์ธ ๊ฒฝ์ฐ 1000์ด๋ผ๋ ๊ฐ์ ์ ๋๋ก ์ถ๋ ฅํ๊ธฐ ์ํด len(number) - k ๋ก ์ฌ๋ผ์ด์ฑ ํด์ฃผ์ด ์ถ๋ ฅํ๋ค.
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmeres] ์ ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ (0) | 2022.04.10 |
---|---|
[Programmers] ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (0) | 2022.04.09 |
[Programmers] ๊ฐ์ฅ ํฐ ์ (0) | 2022.04.08 |
[Progammers] ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ - ์ฒด์ก๋ณต (0) | 2022.04.01 |
Lv 1. ๋ชจ์๊ณ ์ฌ (0) | 2022.02.27 |