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

Programming/Coding Test

[Level 2] ๊ตฌ๋ช…๋ณดํŠธ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ตฌ๋ช…๋ณดํŠธ

๋ฌด์ธ๋„์— ๊ฐ‡ํžŒ ์‚ฌ๋žŒ๋“ค์„ ๊ตฌ๋ช…๋ณดํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌ์ถœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ช…๋ณดํŠธ๋Š” ์ž‘์•„์„œ ํ•œ ๋ฒˆ์— ์ตœ๋Œ€ 2๋ช…์”ฉ ๋ฐ–์— ํƒˆ ์ˆ˜ ์—†๊ณ , ๋ฌด๊ฒŒ ์ œํ•œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ๋žŒ๋“ค์˜ ๋ชธ๋ฌด๊ฒŒ๊ฐ€ [70kg, 50kg, 80kg, 5

programmers.co.kr

 

def solution(ppl, lim):
    ppl.sort()

    cnt = 0

    while ppl:
        if len(ppl) == 1:
            cnt += 1
            break
    
        cur_cnt = cnt
    
        for i in reversed(range(1, len(ppl))):
            if ppl[0]+ppl[i] <= lim:
                ppl.pop(0)
                ppl.pop(i-1)
                cnt += 1
                break
            
        if cnt == cur_cnt:
            ppl.pop(0)
            cnt += 1
    
    return cnt

 

โ–ท ์œ„์˜ ์ฝ”๋“œ๋ฅผ ์ž‘๋™์‹œํ‚ฌ ๊ฒฝ์šฐ, ํšจ์œจ์„ฑ ์ธก๋ฉด์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด pop ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

 

โ–ท ์œ„์˜ ์ฝ”๋“œ์˜ ๋‹ค๋ฅธ ๋ฌธ์ œ์ ์€ ์ด์ค‘๋ฃจํ”„๋ฅผ ๋Œ๋ ธ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์•Œ๊ฒ ์ง€๋งŒ, ์ด์ค‘๋ฃจํ”„๋ฅผ ๋Œ๋ฆด ํ•„์š”๊ฐ€ ์—†๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

โ–ถ pop ํ•จ์ˆ˜์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋Š” ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ์—์„œ ๋นผ๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ์˜ ์œ„์น˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

โ–ถ ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ์˜ ๋…ผ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

def solution(ppl, lim):
    ppl.sort()
    cnt = 0
    
    s, e = 0, len(ppl)-1
    
    while s <= e:
        cnt += 1
        
        if ppl[s]+ppl[e] <= lim:
            s += 1
        e -= 1
        
    return cnt

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

[Level 2] ํฐ ์ˆ˜ ๋งŒ๋“ค๊ธฐ  (0) 2020.10.27
[Level 2] ๋ฌธ์ž์—ด ์••์ถ•  (0) 2020.10.07
[Level 2] ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก (Python)  (0) 2020.10.05
[Level 2] H-Index (Python)  (0) 2020.10.05
[Level 2] ์œ„์žฅ (Python)  (0) 2020.09.30