Chapter12. ๊ตฌํ
[๋ฌธ์ 65] ๊ตฌ๋ช
๋ณดํธ - Level2
๋ฌด์ธ๋์ ๊ฐํ ์ฌ๋๋ค์ ๊ตฌ๋ช
๋ณดํธ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค. ๊ตฌ๋ช
๋ณดํธ๋ ์์์ ํ ๋ฒ์ ์ต๋ 2๋ช
์ฉ ๋ฐ์ ํ ์ ์๊ณ , ๋ฌด๊ฒ ์ ํ๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๊ฐ (70kg, 50kg, 80kg, 50kg)์ด๊ณ ๊ตฌ๋ช
๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ด 100kg์ด๋ผ๋ฉด 2๋ฒ์งธ ์ฌ๋๊ณผ 4๋ฒ์งธ ์ฌ๋์ ๊ฐ์ด ํ ์ ์์ง๋ง 1๋ฒ์งธ ์ฌ๋๊ณผ 3๋ฒ์งธ ์ฌ๋์ ๋ฌด๊ฒ์ ํฉ์ 150kg์ด๋ฏ๋ก ๊ตฌ๋ช
๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ์ด๊ณผํ์ฌ ๊ฐ์ด ํ ์ ์์ต๋๋ค.
๊ตฌ๋ช
๋ณดํธ๋ฅผ ์ต๋ํ ์ ๊ฒ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ฌ๋์ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค.
์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๋ฅผ ๋ด์ ๋ฐฐ์ด people๊ณผ ๊ตฌ๋ช
๋ณดํธ์ ๋ฌด๊ฒ ์ ํ limit๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฌ๋์ ๊ตฌ์ถํ๊ธฐ ์ํด ํ์ํ ๊ตฌ๋ช
๋ณดํธ ๊ฐ์์ ์ต์๊ฐ์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
[์ ํ์ฌํญ]
- ๋ฌด์ธ๋์ ๊ฐํ ์ฌ๋์ 1๋ช
์ด์ 50,000๋ช
์ดํ
- ๊ฐ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ๋ 40kg ์ด์ 240kg ์ดํ
- ๊ตฌ๋ช
๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ 40kg ์ด์ 240kg ์ดํ
- ๊ตฌ๋ช
๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ํญ์ ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ ์ค ์ต๋๊ฐ๋ณด๋ค ํฌ๊ฒ ์ฃผ์ด์ง๋ฏ๋ก ์ฌ๋๋ค์ ๊ตฌ์ถํ ์ ์๋ ๊ฒฝ์ฐ๋ ์์.
1. ๋ฐ์ดํฐ ์ ๋ ฌ
def solution(people, limit):
answer = 0
people.sort()
2. ํฌ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํด ์ง์ง์ ์ ์๋ ์ฌ๋์ ์ ํ์ธ
a = 0
b = len(people) - 1
while a < b:
if people[b] + people[a] <= limit:
a += 1
answer += 1
b -= 1
3. ์ ์ฒด ์ธ์์์ ๋ ์ฌ๋์ฉ ํ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋บ ๊ฒฐ๊ณผ ๋ฐํ
return len(people) - answer
[์ ์ฒด์ฝ๋]
def solution(people, limit):
answer = 0
people.sort()
a = 0
b = len(people) - 1
while a < b:
if people[b] + people[a] <= limit:
a += 1
answer += 1
b -= 1
return len(people) - answer