
ํ๋ก๊ทธ๋๋จธ์ค - ๊ตฌ๋ช ์กฐ๋ผ
๋ฌธ์ ์ค๋ช
๋ฌด์ธ๋์ ๊ฐํ ์ฌ๋๋ค์ ๊ตฌ๋ช ๋ณดํธ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค. ๊ตฌ๋ช ๋ณดํธ๋ ์์์ ํ ๋ฒ์ ์ต๋ 2๋ช ์ฉ ๋ฐ์ ํ ์ ์๊ณ , ๋ฌด๊ฒ ์ ํ๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๊ฐ [70kg, 50kg, 80kg, 50kg]์ด๊ณ ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ด 100kg์ด๋ผ๋ฉด 2๋ฒ์งธ ์ฌ๋๊ณผ 4๋ฒ์งธ ์ฌ๋์ ๊ฐ์ด ํ ์ ์์ง๋ง 1๋ฒ์งธ ์ฌ๋๊ณผ 3๋ฒ์งธ ์ฌ๋์ ๋ฌด๊ฒ์ ํฉ์ 150kg์ด๋ฏ๋ก ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ์ด๊ณผํ์ฌ ๊ฐ์ด ํ ์ ์์ต๋๋ค.
๊ตฌ๋ช ๋ณดํธ๋ฅผ ์ต๋ํ ์ ๊ฒ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ฌ๋์ ๊ตฌ์ถํ๋ ค๊ณ ํฉ๋๋ค.
์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ๋ฅผ ๋ด์ ๋ฐฐ์ด people๊ณผ ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ limit๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฌ๋์ ๊ตฌ์ถํ๊ธฐ ์ํด ํ์ํ ๊ตฌ๋ช ๋ณดํธ ๊ฐ์์ ์ต์๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๋ฌด์ธ๋์ ๊ฐํ ์ฌ๋์ 1๋ช ์ด์ 50,000๋ช ์ดํ์ ๋๋ค.
- ๊ฐ ์ฌ๋์ ๋ชธ๋ฌด๊ฒ๋ 40kg ์ด์ 240kg ์ดํ์ ๋๋ค.
- ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ 40kg ์ด์ 240kg ์ดํ์ ๋๋ค.
- ๊ตฌ๋ช ๋ณดํธ์ ๋ฌด๊ฒ ์ ํ์ ํญ์ ์ฌ๋๋ค์ ๋ชธ๋ฌด๊ฒ ์ค ์ต๋๊ฐ๋ณด๋ค ํฌ๊ฒ ์ฃผ์ด์ง๋ฏ๋ก ์ฌ๋๋ค์ ๊ตฌ์ถํ ์ ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
// ์ผ๋จ ๋ฌด๊ฑฐ์ด ์์ผ๋ก ์ ๋ ฌ (๋ด๋ฆผ์ฐจ์)
// ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋๊ณผ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋์ ๋ฌด๊ฒ ํฉ์ด ๋ฌด๊ฒ ์ ํ ๋ณด๋ค ๋ฎ์ผ๋ฉด -> ๋ ์ฌ๋์ด ๋น ์ง๊ณ ๊ตฌ๋ช
๋ณดํธ ๊ฐ์๋ฅผ ์ถ๊ฐ
// ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋๋ง ๋น ์ง๊ณ ๊ตฌ๋ช
๋ณดํธ ๊ฐ์๋ฅผ ์ถ๊ฐ
// i = 0 (๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋)
// j = ์๋ก์ด๋ฐฐ์ด์ ๊ธธ์ด -1 (๊ฐ์ฅ ๋ค, ์ฆ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋)
function solution(people, limit) {
var answer = 0;
let saram = people.sort((a,b)=>b-a) // ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
// ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋๊ณผ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋์ ๋ฌด๊ฒ ํฉ์ด ๋ฌด๊ฒ ์ ํ ๋ณด๋ค ๋ฎ์ผ๋ฉด -> ๋ ์ฌ๋์ด ๋น ์ง๊ณ ๊ตฌ๋ช
๋ณดํธ ๊ฐ์๋ฅผ ์ถ๊ฐ
// ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋๋ง ๋น ์ง๊ณ ๊ตฌ๋ช
๋ณดํธ ๊ฐ์๋ฅผ ์ถ๊ฐ
let i = 0
let j = saram.length -1
while (i<=j) {
if(saram[i] + saram[j] > limit) i++
else {
i++
j--
} answer++
} return answer
๋ณ์๋ฅผ ์กธ๋ฉด์ ์ค์ ํ๋..?
'Algorithm > ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฝ๋ฉ ํ ์คํธ] Programmers - ๋ชจ์์ฌ์ (Javascript) (0) | 2023.05.17 |
---|---|
[์ฝ๋ฉ ํ ์คํธ] Programmers - ๊ดํธ ๋ณํ(Javascript) (0) | 2023.05.17 |
Everyday-algorithm (3) / .sort() (0) | 2022.09.20 |
Everyday-algorithm (2) / .map() , .forEach() (1) | 2022.09.20 |
Everyday-algorithm (1) (0) | 2022.09.20 |