๋ฌธ์ ์ค๋ช
๋ฌด์ธ๋์ ๊ฐํ ์ฌ๋๋ค์ ๊ตฌ๋ช ๋ณดํธ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค. ๊ตฌ๋ช ๋ณดํธ๋ ์์์ ํ ๋ฒ์ ์ต๋ 2๋ช ์ฉ ๋ฐ์ ํ ์ ์๊ณ , ๋ฌด๊ฒ ์ ํ๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๊ฐ [70kg, 50kg, 80kg, 50kg]์ด๊ณ ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ด 100kg์ด๋ผ๋ฉด 2๋ฒ์งธ ์ฌ๋๊ณผ 4๋ฒ์งธ ์ฌ๋์ ๊ฐ์ด ํ ์ ์์ง๋ง 1๋ฒ์งธ ์ฌ๋๊ณผ 3๋ฒ์งธ ์ฌ๋์ ๋ฌด๊ฒ์ ํฉ์ 150kg์ด๋ฏ๋ก ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ์ด๊ณผํ์ฌ ๊ฐ์ด ํ ์ ์์ต๋๋ค.
๊ตฌ๋ช ๋ณดํธ๋ฅผ ์ต๋ํ ์ ๊ฒ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ฌ๋์ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค.
์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๋ฅผ ๋ด์ ๋ฐฐ์ด people๊ณผ ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ limit๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฌ๋์ ๊ตฌ์ถํ๊ธฐ ์ํด ํ์ํ ๊ตฌ๋ช ๋ณดํธ ๊ฐ์์ ์ต์๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.์ ํ์ฌํญ
โช ย ๋ฌด์ธ๋์ ๊ฐํ ์ฌ๋์ 1๋ช ์ด์ 50,000๋ช ์ดํ์ ๋๋ค.
โช ย ๊ฐ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ๋ 40kg ์ด์ 240kg ์ดํ์ ๋๋ค.
โช ย ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ 40kg ์ด์ 240kg ์ดํ์ ๋๋ค.
โช ย ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ํญ์ ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ ์ค ์ต๋๊ฐ๋ณด๋ค ํฌ๊ฒ ์ฃผ์ด์ง๋ฏ๋ก ์ฌ๋๋ค์ ๊ตฌ์ถํ ์ ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.์ ์ถ๋ ฅ ์
people limit return [70, 50, 80, 50] 100 3 [70, 80, 50] 100 3
def solution(people, limit): cnt = 0 people.sort() min = 0 max = len(people)-1 while min <= max : cnt += 1 if people[min] + people[max] <=limit: min += 1 max -= 1 else : max -=1 return cnt
์ผ๋จ ์ต๋ 2๋ช ๊น์ง ๊ฐ๋ฅํ๋ค๊ณ ํ์ผ๋ฏ๋ก, ๊ฐ์ฅ ์ต์ ์ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ค. ์ต์ ์ ๋ฐฉ๋ฒ์ด๋ผ ํจ์, ๊ฐ์ฅ ์์ ์๊ฐ ๊ฐ์ฅ ํฐ ์์ ์ง์ง์ด์ ๋๊ฐ๊ฒ ๋๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์กฐ๊ฑด๋ฌธ์ ์ผ๊ณ , ๋ง์กฑํ์ง ๋ชปํ์ ๊ฒฝ์ฐ์, index๋ฅผ ์๋ค๋ก ๋ฐ๊ฟ์ฃผ๋ฉด์ cnt๋ฅผ ์ธ์ฃผ์๋ค.
์ง๊ณ ๋์ ๋ณด๋, if๋ฌธ์ max = -1 ๊ณผ else๋ฌธ์ max = -1 ์ด ๊ณตํต์ ์ด๋ผ, ์ด๋ else๋ฅผ ์ง์ฐ๊ณ if๋ฌธ ๋ฐ์ max = -1 ๋ก ํต์ผ ์ํค๋ฉด ๋ ์ข์์ ๊ฑธ ์ด๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.