본문 바로가기
카테고리 없음

[백준 11536/javascript] 줄 세우기

by tokkiC 2022. 8. 31.

자바스크립트에서 두 배열의 값이 서로 같은지를 확인하려고 === 를 사용하면 참조가 같은지를 파악하므로

서로 다른 배열은 다른 객체이므로 무조건 false 가 나와 값의 비교를 파악하는 방법으로 옳지 않다

for 문으로 요소마다 순회하며 값을 비교할 수도 있지만

JSON.stringify(배열명) 를 사용해서 문자열화 시켜서 같은지를 비교하는 방법이 편해보인다

문자열을 정렬할 경우 오름차순은 sort() 해주고 내림차순은 오름차순을 reverse() 한 것으로 표현하였다

자바스크립트는 이런데선 참 예민하다

https://www.acmicpc.net/problem/11536

 

11536번: 줄 세우기

이름이 증가하는 순으로 나타나면 INCREASING, 감소하는 순이면 DECREASING을 한 줄에 출력한다. 만약 위의 두 경우가 아니라면 NEITHER를 출력한다.

www.acmicpc.net

const { json } = require("stream/consumers");

let input = [];

const readline = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});

readline.on("line", (line) => {
  input.push(line);
});

readline.on("close", () => {
  solution(input);
  process.exit();
});

const solution = (inp) => {
  inp.shift();

  let inc = Array.from(inp);
  inc.sort();

  let dec = Array.from(inc);
  dec.reverse();

  inc = JSON.stringify(inc);
  dec = JSON.stringify(dec);
  inp = JSON.stringify(inp);

  if (inp === inc) {
    console.log("INCREASING");
  } else if (inp === dec) {
    console.log("DECREASING");
  } else {
    console.log("NEITHER");
  }
};

댓글