728x90
[๋ฌธ์ ๋งํฌ] ๐
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
ํ์ด ๋ฐฉ๋ฒ
1๏ธโฃ ์ ๋ ฌ (O(nlogโกn)์๊ฐ)
- ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ ๋ฆฌ์คํธ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
- ์ด๋ ๊ฒ ํ๋ฉด ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋๊ณผ ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋์ ํจ์จ์ ์ผ๋ก ์ง์ง์ ์ ์๋ค.
2๏ธโฃ ํฌ ํฌ์ธํฐ ์ฌ์ฉ (O(n) ์๊ฐ
- ๋ฆฌ์คํธ์ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋(์ผ์ชฝ ํฌ์ธํฐ)๊ณผ ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋(์ค๋ฅธ์ชฝ ํฌ์ธํฐ)์ ํ์ธํ๋ค.
- ๋ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ ํฉ์ด ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ์ด๊ณผํ์ง ์์ผ๋ฉด, ๋ ์ฌ๋์ ํ ๋ณดํธ์ ํ์ด๋ค(์์ชฝ ํฌ์ธํฐ๋ฅผ ์ด๋).
3๏ธโฃ ํผ์ ํ์ฐ๊ธฐ
- ๋ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ ํฉ์ด ๋ฌด๊ฒ ์ ํ์ ์ด๊ณผํ๋ฉด, ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋๋ง ๋ณดํธ์ ํ์ฐ๊ณ ์ค๋ฅธ์ชฝ ํฌ์ธํฐ๋ฅผ ์ด๋ํ๋ค.
4๏ธโฃ ๋ฐ๋ณต
- ์ผ์ชฝ ํฌ์ธํฐ๊ฐ ์ค๋ฅธ์ชฝ ํฌ์ธํฐ๋ฅผ ๋์ ๋๊น์ง ์์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
5๏ธโฃ ๊ฒฐ๊ณผ ๋ฐํ
- ํ์ํ ๋ณดํธ์ ๊ฐ์๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐํํ๋ค.
[Two-Pointers(ํฌ ํฌ์ธํฐ) ๊ฐ๋ ์ ๋ฆฌ] ๐ https://dev-cloud.tistory.com/420
Solution
def solution(people, limit):
answer = 0
people = sorted(people)
start = 0
end = len(people) - 1
while start <= end:
if people[start] + people[end] <= limit:
start += 1
end -= 1
answer += 1
else:
answer += 1
end -= 1
return answer
๐ฉ๐ป ํ๊ณ
์ฒ์์ ์กฐํฉ์ ์ฌ์ฉํ์ฌ ๊ตฌํํ๊ณ ์ ์ถํ๋๋ฐ, ์คํ ์๊ฐ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ์ค๋ต์ด ๋ง์๋ค. ํฌ ํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ ํจ์ฌ ํจ์จ์ ์ด๊ณ ๋ ์ฝ๊ฒ ํ ์ ์์๋ค.
728x90
'๐งฉ Algorithm > [Programmers] Level 2' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Programmers] L1. ๋ช ์์ ์ ๋น (์ต์ ํ/Python) (0) | 2024.11.16 |
|---|---|
| [Programmers] L2. ๊ทค ๊ณ ๋ฅด๊ธฐ (Greedy/Python) (0) | 2024.11.16 |
| [Programmers] L2. ์์ด ๋๋ง์๊ธฐ (Python) (1) | 2024.11.11 |
| [Programmers] L2. ์ ํ์ ์๊ฐ ์ด๋ (Python) (0) | 2024.11.11 |
| [Programmers] L2. ์นดํซ (์์ ํ์/Python) (0) | 2024.11.11 |