ํ์ด ๋ ์ง : 2025.05.07
๋ฌธ์ ์ ํ : ํ์๋ฒ
๋ฌธ์ ์ ๋ชฉ : ๊ตฌ๋ช ๋ณดํธ
๋ฌธ์ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/42885
Intuition
- ๊ฐ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ(people)์ ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ(limit)์ด ์ฃผ์ด์ง ๋ ํ์ํ ์ต์ํ์ ๊ตฌ๋ช ๋ณดํธ ๊ฐ์๋ฅผ ๊ตฌํด์ผ ํ๋ค.
- 1๊ฐ์ ๋ณดํธ์๋ ์ต๋ 2๋ช
๊น์ง๋ง ํ์ธ ์ ์๋ค๋ ์กฐ๊ฑด์ด ์๋ค.
- 2๋ช ์ ํ์ด ๋ณด๋๊ฐ ๋ง์์๋ก ํ์ํ ๋ณดํธ ๊ฐ์๋ ์ค์ด๋ ๋ค.
- ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋์ ๊ฐ๋ฅํ ํ ๊ฐ๋ณ๊ณ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ฌ๋๊ณผ ์ง์ง๋ ๊ฒ์ด ์ต์ ์ด๋ค. ⇒ ๊ทธ๋ฆฌ๋ ๋ฐฉ์
- ๋ฌด๊ฑฐ์ด ์ฌ๋์ ์ง์ง์ ์ ์๋ ๋์์ด ์ ๊ณ ํผ์ ํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค. ์ฆ, ๋ฌด๊ฒ ์ ํ์ ๋์ด๊ฐ๋ฉด ๋ฌด๊ฑฐ์ด ์ฌ๋์ด ํผ์ ํ์ผ ํ๋ค.
- ๋ฐฐ์ด์ ์ ๋ ฌ ํ ์๋์์ ์ต๋๊ฐ, ์ต์๊ฐ์ ๊ฒฐ์ ํ ์ ์๋ค.
- ์๋์์ ์์ํ์ฌ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์กฐํฉ์ ์ฐพ๋ ๊ฒฝ์ฐ ํฌ ํฌ์ธํฐ ๊ธฐ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค.
Approach
- ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๋ฅผ ๋ด์ ๋ฐฐ์ด(people)์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
- ํ์ํ ๋ณดํธ ๊ฐ์(boat), ์ผ์ชฝ ํฌ์ธํฐ(start), ์ค๋ฅธ์ชฝ ํฌ์ธํฐ(end)๋ฅผ ์ ์ธํ๋ค.
- start์ end๊ฐ ๋ง๋ ๋๊น์ง ํ์์ ๋ฐ๋ณตํ๋ค.
- start์ end์ ๋ชธ๋ฌด๊ฒ ํฉ์ด limit ๋ณด๋ค ํฌ๋ฉด, ๋ฌด๊ฑฐ์ด ์ฌ๋์ ํผ์ ํ์์ผ ํ๋ฏ๋ก end๋ฅผ 1 ์ฆ๊ฐ์ํจ๋ค.
- start์ end์ ๋ชธ๋ฌด๊ฒ ํฉ์ด limit ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด, ๊ฐ์ด ํ ์ ์์ผ๋ฏ๋ก start๋ฅผ 1 ์ฆ๊ฐ, end๋ฅผ 1 ๊ฐ์์ํจ๋ค.
- ํ ๋ฒ์ ํ์ ์ข
๋ฃ ํ boat๋ฅผ 1 ์ฆ๊ฐ์ํจ๋ค.
(๋ ํฌ์ธํฐ๊ฐ ๋ง๋๋ฉด 1๋ช ๋จ์์๋ค๋ ๋ป์ผ๋ก, ๋ง์ฐฌ๊ฐ์ง๋ก boat๋ฅผ 1 ์ฆ๊ฐ์ํค๋ฉด ๋๋ค.)
- boat๋ฅผ ๋ฐํํ๋ค.
Complexity
- Time complexity :
O(n log n)- people์ ๊ธธ์ด๋ฅผ n ์ด๋ผ๊ณ ํ ๋,
์ค๋ฆ์ฐจ์ ์ ๋ ฌ์์ O(n log n)
ํฌ ํฌ์ธํฐ ํ์์์ start, end ํฉ์ณ์ ์ต๋ n๋ฒ ์ด๋ํ๋ฉด while ๋ฃจํ๊ฐ ๋๋๋ฏ๋ก O(n)
์ข ํฉ์ ์ผ๋ก O(n log n)์ด๋ค.
- people์ ๊ธธ์ด๋ฅผ n ์ด๋ผ๊ณ ํ ๋,
- Splace complexity :
O(1)- ์ ๋ ฅ ๋ฐฐ์ด ์ธ์ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ๊ฑฐ์ ์์
Code (JS)
function solution(people, limit) {
// ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
people.sort((a, b) => a - b);
let boat = 0;
let start = 0;
let end = people.length - 1;
// ์๋์์ ํ์
while (start <= end) {
if (people[start] + people[end] > limit) {
// ๋ฌด๊ฑฐ์ด ์ฌ๋ ํผ์ ํ
end -= 1;
} else {
// ๋ฌด๊ฑฐ์ด ์ฌ๋, ๊ฐ๋ฒผ์ด ์ฌ๋ ๊ฐ์ด ํ
start += 1;
end -= 1;
}
boat += 1;
}
return boat;
}'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > Programmers - Lv.2' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ์์ด ๋๋ง์๊ธฐ (0) | 2025.05.08 |
|---|---|
| [ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ์ ํ์ ์๊ฐ ์ด๋ (0) | 2025.04.30 |
| [ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ๊ทค ๊ณ ๋ฅด๊ธฐ (1) | 2025.04.30 |
| [ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ (0) | 2025.04.22 |
| [ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ์ซ์์ ํํ (0) | 2025.04.21 |