๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Programming/Coding Test

[Level 2] ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ

 

programmers.co.kr

 

def solution(num, k):
    max_num = []
    
    for i, n in enumerate(num):
        while len(max_num) > 0 and max_num[-1] < n and k > 0:
            max_num.pop()
            k -= 1
            
        if k == 0:
            max_num += list(num[i:])
            break
            
        max_num.append(n)
        
    max_num = max_num[:-k] if k > 0 else max_num
    
    return(''.join(max_num))

 

โ–ท ์ด ๋ฌธ์ œ๋Š” ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์—ฌ ํ‘ธ๋Š” ๋ฌธ์ œ๋กœ, ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์˜ ๋‘ ๋ฒˆ์งธ ์ˆซ์ž๋ถ€ํ„ฐ ์ด์ „์˜ ์ˆซ์ž์™€ ๋น„๊ต๋ฅผ ํ†ตํ•ด ๊ฐ€์žฅ ํฐ ์ˆซ์ž๋ฅผ ๋งŒ๋“ค์–ด ๋‚˜๊ฐ€์•ผ ํ•œ๋‹ค.

 

โ–ท ์œ„ ์ฝ”๋“œ์˜ ๋…ผ๋ฆฌ๋ฅผ ์š”์•ฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

1. max_num๋ผ๋Š” ๋นˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.

2. ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋Š” ๋ฐ˜๋“œ์‹œ max_num ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ๋กœ ํ• ๋‹นํ•œ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ˆซ์ž๋ถ€ํ„ฐ๋Š” max_num ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋ณด๋‹ค ํฌ๋‹ค๋ฉด, ํ•ด๋‹น ์ˆซ์ž๋ฅผ max_num ๋ฆฌ์ŠคํŠธ์—์„œ ์ œ๊ฑฐํ•œ๋‹ค. ๋‘ ์ˆซ์ž์˜ ๋น„๊ต ๊ฒฐ๊ณผ์™€ ์ƒ๊ด€์—†์ด ํ•ด๋‹น ์ˆœ์„œ์˜ ์ˆซ์ž๋ฅผ max_num ๋ฆฌ์ŠคํŠธ์— ํ• ๋‹นํ•œ๋‹ค.

3. k ๋ณ€์ˆ˜๊ฐ€ 0์ด๋ฉด max_num ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๋กœ ์ถœ๋ ฅํ•˜๊ณ , 0์ด ์•„๋‹ˆ๋ผ๋ฉด k ๋ณ€์ˆ˜ ๋งŒํผ ์˜ค๋ฅธ์ชฝ ๋๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ์ œ๊ฑฐํ•œ ๊ฒƒ์„ ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. 

 

โ–ถ enumerate ํ•จ์ˆ˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ž์˜ ๊ฐ’๊ณผ ์ˆœ์„œ ์ •๋ณด๋ฅผ for ๋ฌธ์˜ ๋‘ ์ธ์ž์— ํ• ๋‹นํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

'Programming > Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Level 2] ์กฐ์ด์Šคํ‹ฑ  (0) 2020.10.28
[Level 2] ๋ฌธ์ž์—ด ์••์ถ•  (0) 2020.10.07
[Level 2] ๊ตฌ๋ช…๋ณดํŠธ  (0) 2020.10.06
[Level 2] ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก (Python)  (0) 2020.10.05
[Level 2] H-Index (Python)  (0) 2020.10.05