정렬되어있는 두 배열 A와 B가 주어진다. 두 배열을 합친 다음 정렬해서 출력하는 프로그램을 작성하시오.
첫째 줄에 두 배열을 합친 후 정렬한 결과를 출력한다.
// NOTE: 입력
4 3
2 3 5 9
1 4 7
// NOTE: 출력
1 2 3 4 5 7 9
- a 배열과 b 배열은 이미 정렬이 되어있음
- pointer 개념을 가져와야함
- a[pointer]와 b[pointer]를 비교
javascript는 pointer 개념이 없으니까 index를 이용할거임
const solution = () => {
const [[N, M], _aArr, _bArr] = require('fs')
.readFileSync('dev/stdin')
.toString()
.trim()
.split('\n')
.map(v => v.split(' ').map(v => +v));
let _mergeSortArr = [];
let _a_idx = 0;
let _b_idx = 0;
while(_a_idx < N || _b_idx < M) {
// NOTE: a 배열이 모두 소진된 경우
if (_a_idx === N) {
_mergeSortArr.push(_bArr[_b_idx++]);
continue;
}
// NOTE: b 배열이 모두 소진된 경우
if (_b_idx == M) {
_mergeSortArr.push(_aArr[_a_idx++]);
continue;
}
// NOTE: a배열[idx] < b배열[idx]인 경우
if (_aArr[_a_idx] < _bArr[_b_idx]) {
_mergeSortArr.push(_aArr[_a_idx++]);
continue;
}
// NOTE: a배열[idx] > b배열[idx]인 경우
_mergeSortArr.push(_bArr[_b_idx++]);
}
console.log(_mergeSortArr.join(' '));
};
solution();