๐Ÿ’ป์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œํ’€์ด29

์ง€๋ฏผ์„œยท2023๋…„ 3์›” 16์ผ
0

coding test

๋ชฉ๋ก ๋ณด๊ธฐ
28/30

Chapter12. ๊ตฌํ˜„

[๋ฌธ์ œ64] ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ - Level2

์–ด๋–ค ์ˆซ์ž์—์„œ k๊ฐœ์˜ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ–ˆ์„ ๋•Œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋ฅผ ๊ตฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆซ์ž 1924์—์„œ ์ˆ˜ ๋‘ ๊ฐœ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด (19, 12, 14, 92, 94, 24)๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋Š” 94์ž…๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ์ˆซ์ž number์™€ ์ œ๊ฑฐํ•  ์ˆ˜์˜ ๊ฐœ์ˆ˜ k๊ฐ€ solution ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. number์—์„œ k๊ฐœ์˜ ์ˆ˜๋ฅผ ์ œ๊ฑฐํ–ˆ์„ ๋•Œ ๋งŒ๋“ค ์ˆ˜ ์ž‡๋Š” ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.

[์ œํ•œ์‚ฌํ•ญ]

  • number๋Š” 2์ž๋ฆฌ ์ด์ƒ, 1,000,000์ž๋ฆฌ ์ดํ•˜์ธ ์ˆซ์ž
  • k๋Š” 1 ์ด์ƒ number์˜ ์ž๋ฆฟ์ˆ˜ ๋ฏธ๋งŒ์ธ ์ž์—ฐ์ˆ˜

[์ฝ”๋“œ์ž‘์„ฑ]

1. ์ •๋‹ต์„ ๋ฐ›์„ ๋ณ€์ˆ˜ ์ƒ์„ฑ

def solution(number, k):
	answer = []

2. ์Šคํƒ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ด ๊ณ ์  ์œ ์ง€

for num in number:
	while k > 0 and answer and answer[-1] < num:
    	answer.pop()
        k -= 1
        
    answer.append(num)

3. ๊ธ€์ž๋ฅผ ์ „๋ถ€ ํ•ฉ์ณ์„œ ๋ฐ˜ํ™˜

return ''.join(answer[:len(answer) - k])

[์ „์ฒด์ฝ”๋“œ]

def solution(number, k):
	answer = []
    
    for num in number:
        while k > 0 and answer and answer[-1] < num:
            answer.pop()
            k -= 1

        answer.append(num)
        print(answer)
        
    return ''.join(answer[:len(answer) - k])
profile
๐Ÿ’ป + ๐ŸŽฅ

0๊ฐœ์˜ ๋Œ“๊ธ€