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 |