Algorithm/Programmers
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์ ๊ฒ์
๊ฐ๋ฐ๊ฐ๊ตด๐ธ
2022. 9. 30. 20:38
[๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/12987?language=javascript
[ํ์ด]
ํฌํฌ์ธํฐ์ ๊ฐ๋ ์ ์๊ณ ์๋ค๋ฉด ์ฝ๊ฒ ํ๋ฆฌ๋ ๋ฌธ์ ์์ต๋๋ค.
์ด์ฐจํผ A์ ์์๋ ์ ํด์ ธ ์๊ธฐ ๋๋ฌธ์, A๊ฐ ๋ ๋จผ์ ๊ฒฝ๊ธฐ์ ๋ด๋ณด๋ผ ์ฌ์์ ์ ํํ๋ ๊ฒ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ A์ B๋ฅผ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ์ฌ ํฌํฌ์ธํฐ๋ฅผ ์งํํ๋ฉด ๋ฉ๋๋ค.
์์ 1๋ฒ์ A, B ๋ฐฐ์ด์ ์ ๋ ฌํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
[ 1, 3, 5, 7 ]
[ 2, 2, 6, 8 ]
A์ ์ ๊ทผํ left, B์ ์ ๊ทผํ right๋ฅผ ๊ฐ๊ฐ 0์ผ๋ก ์ด๊ธฐํํ๊ณ ํฌํฌ์ธํฐ๋ฅผ ์งํํฉ๋๋ค.
- A[left] < B[right] ๋ผ๋ฉด B๊ฐ ์น๋ฆฌํ๊ณ answer++๋๋ฉฐ left++, right++๋ก ๊ฐฑ์
- A[left] >= B[right]๋ผ๋ฉด right++ํ์ฌ ๋ค์ B์ ์์ ๊ฒจ๋ฃจ๊ฒ ํจ
์์ ๊ณผ์ ์ ํตํด ๋ง์ง๋ง ๋ฐฐ์ด๊น์ง ํ์ธํ๋ฉด answer๊ฐ์ด 3์ด ๋์ด ์ด 3๋ช ์ ์ ์๊ฐ ์น๋ฆฌํ ์ ์๋๊ฒ์ ์ ์ ์์ต๋๋ค.
[์ฝ๋]
function solution(A, B) {
var answer = 0;
const n = A.length;
A.sort((a, b) => a - b);
B.sort((a, b) => a - b);
let left = 0;
let right = 0;
while(right < n) {
if(A[left] < B[right]) {
answer++;
left++;
right++;
} else {
right++;
}
}
return answer;
}