https://school.programmers.co.kr/learn/courses/30/lessons/42885#
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ณดํธ์ ์ต๋ 2๋ช ์ ์ธ์์ ํ์ด ์๋ค๋ ์กฐ๊ฑด๋ง ์ ์ฒดํฌํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์ฒ์์๋ ๋ชธ๋ฌด๊ฒ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ํ๋ฒ์ ํ ๋ช ๋๋ ๋ ๋ช ์ฉ ํ์์ฃผ์๋๋ฐ,
๊ทธ๋ ๊ฒ ํ๋ฉด [10,20,30,40,50,60,70,80,90], 100 ๊ณผ ๊ฐ์ ํ ์คํธ์ผ์ด์ค์์ ์ค๋ต์ด ๋์จ๋ค.
๊ทธ๋์ ๋ชธ๋ฌด๊ฒ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ,
๋ฆฌ์คํธ์ ๋งจ ์๊ณผ ๋งจ ๋ค (๋จ์ ์ธ์ ์ค ๋ชธ๋ฌด๊ฒ ์ต๋์ธ ์ธ์๊ณผ ์ต์์ธ ์ธ์) ์ ํ ๋ฒ์ ํ์ธ ์ ์์ผ๋ฉด ํ์ฐ๊ณ ,
๊ทธ๋ ์ง ์์ผ๋ฉด ๋งจ ์ ์ธ์๋ง ํ์ฐ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ์๋ค.
python
def solution(people, limit):
answer = 0
people.sort(reverse = True)
# 1๋ช
๋๋ 2๋ช
์ฉ ํ์ฐ๊ธฐ
idx = 0
while idx < len(people):
if people[idx] + people[-1] <= limit:
people.pop()
idx += 1
answer += 1
return answer
๋ค๋ฅธ ํ์ด์ค ๋์ ์์ด๋์ด๋ ๋์ผํ์ง๋ง, pop()์ ์ฐ์ง ์๊ณ ํฌํฌ์ธํฐ๋ฅผ ์จ์ ํผ ์ฝ๋๊ฐ ์์๋ค.
์ฐ์ฐ์๋๊ฐ ๋นจ๋ผ์ ํจ์จ์ฑ์์ ๊ฑฐ์ 2๋ฐฐ์ ๋ ์ฐจ์ด๊ฐ ๋ฌ๋ค. ํจ์ฌ ์ข์๋ฏ!
def solution(people, limit):
answer = 0
people.sort(reverse = True)
# 1๋ช
๋๋ 2๋ช
์ฉ ํ์ฐ๊ธฐ
a = 0
b = len(people)-1
while a <= b:
if people[a] + people[b] <= limit:
b -= 1
a += 1
answer += 1
return answer
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > Greedy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ง์น ํ๊ธฐ (0) | 2023.05.25 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค]์ฒด์ก๋ณต (0) | 2023.05.24 |
[๋ฐฑ์ค]2839๋ฒ: ์คํ ๋ฐฐ๋ฌ (0) | 2023.05.06 |
[์ด์ฝํ ] ๋ง๋ค ์ ์๋ ๊ธ์ก (0) | 2023.03.26 |
[์ด์ฝํ ] ๋ณผ๋ง๊ณต ๊ณ ๋ฅด๊ธฐ (1) | 2023.03.25 |