๐ Problem Solution/Programmers
[JS] ํ๋ก๊ทธ๋๋จธ์ค ๊ตฌ๋ช ๋ณดํธ
Fomagran ๐ป
2022. 4. 11. 06:01
728x90
๋ฐ์ํ
Problem
Solution
1. ์ฌ๋์ ๋ฌด๊ฒ ์์ผ๋ก ์ ๋ ฌํ๋ค.
let sorted = people.sort((a,b) => a-b)
2. ์ ๋ ฌํ ๋ฌด๊ฒ์ ์์๊ณผ ๋์ ์ง์ ํด์ค๋ค.
let start = 0
let end = people.length - 1
3. ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋๋ถํฐ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋์ ์ฐจ๋ก๋ก ์ฐ๊ฒฐ์ง๋๋ค.
๋ง์ฝ ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋๊ณผ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋์ ์ฐ๊ฒฐ์ง์๋๋ฐ limit๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ๊ฐ์ด ๋ณดํธ๋ฅผ ํ ์ ์๋ ๊ฒฝ์ฐ์ด๋ฏ๋ก ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋์ ์์น๋ฅผ +1 ํด์ค ๊ฐฑ์ ํด ์ค๋๋ค.
๊ทธ๊ฒ ์๋๋ผ๋ฉด ๋ฌด๊ฑฐ์ด ์ฌ๋ ํผ์๋ง ํ ์ ์๋ ๊ฒฝ์ฐ์ด๋ฏ๋ก ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋์ -1 ํด์ค ๊ฐฑ์ ํด ์ค๋๋ค.
๋์ด ํ์ ๊ฒฝ์ฐ, ๋ฌด๊ฑฐ์ด ์ฌ๋ ํผ์ ํ์ ๊ฒฝ์ฐ ๋ชจ๋ ๋ณดํธ๋ฅผ ์ด์ฉํ ๊ฒ์ด๋ฏ๋ก answer๋ฅผ +1 ํด์ค๋๋ค.
while (start < end) {
if (sorted[start] + sorted[end] <= limit) {
start += 1
}
end -= 1
answer += 1
}
4. ๊ฐ์ฅ ๋ฌด๊ฑฐ์ด ์ฌ๋๊ณผ ๊ฐ์ฅ ๊ฐ๋ฒผ์ด ์ฌ๋์ด ๋์ผํ ๊ฒฝ์ฐ answer +1 ํด์ค๋ค.
์ด ๊ฒฝ์ฐ๋ ํผ์๋ง ๋จ์ ๊ฒฝ์ฐ์ด๋ฏ๋ก answer์ +1์ ํด์ค๋๋ค.
return start == end ? answer + 1 : answer;
Source Code
<script src="https://gist.github.com/fomagran/3698fa776a36a1e8ec0515d4ba8794af.js"></script>
728x90
๋ฐ์ํ