치춘짱베리굿나이스

[백준] 11728 본문

Javascript + Typescript/자바스크립트로 알고리즘풀기

[백준] 11728

치춘 2022. 3. 17. 14:26

배열 합치기

문제

정렬되어있는 두 배열 A와 B가 주어진다. 두 배열을 합친 다음 정렬해서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000)

둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거나 같은 정수이다.

출력

첫째 줄에 두 배열을 합친 후 정렬한 결과를 출력한다.

풀이

const arraySort = (arrA, arrB, sizeA, sizeB) => {
  let arr = [];
  let i = 0;
  let j = 0;
  while (i < sizeA || j < sizeB) {
    if (i === sizeA) arr.push(arrB[j++]);
    else if (j === sizeB) arr.push(arrA[i++]);
    else if (arrA[i] < arrB[j]) arr.push(arrA[i++]);
    else arr.push(arrB[j++]);
  }
  return arr;
};

const array = () => {
  let input = require("fs")
    .readFileSync("/dev/stdin")
    .toString()
    .trim()
    .split("\\n")
    .map((n) => n.split(" ").map(Number));
  console.log(
    arraySort(input[1], input[2], input[0][0], input[0][1]).join(" ")
  );
};

array();

반성회

인덱스 2개 잡고 둘 다 범위를 벗어날 때까지 값을 비교했다

'Javascript + Typescript > 자바스크립트로 알고리즘풀기' 카테고리의 다른 글

[백준] 2630  (0) 2022.03.17
[백준] 1340  (0) 2022.03.17
[백준] 5338  (0) 2022.03.17
[백준] 1074  (0) 2022.03.17
[백준] 1629  (0) 2022.03.17
Comments