자바스크립트 백준[2480번]

Hyuk2·2023년 12월 25일
0

알고리즘

목록 보기
1/1
post-thumbnail

백준 2480번 문제 풀이

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

rl.on('line', function (line) {
  input = line.split(' ').map(v => +v);
}).on('close', function () {
  solution(input);
  
  process.exit();
  });

function solution(RandomNum){
  const num = [...RandomNum];
  const setNum = new Set();

  const duplicationNum = num.filter(item => {
    if(setNum.has(item)) return item;
    else setNum.add(item);
  })
  
  if(setNum.size === 1) console.log(10000 + duplicationNum[0] * 1000);
  else if(setNum.size === 2) console.log(1000 + duplicationNum[0] * 100);
  else console.log(Math.max(...setNum) *100);
}  

왜 이런 식으로 풀이했는지 이유
1. 처음에는 fs모듈로 입력을 받아와서 만들었는데, 다른 문제들에서 에러적인 문제도 있고, readline모듈로 입력을 받아오면, 좀 더 다양한 메서드를 사용할 수 있어서 readline모듈로 작성했다.

2. 최대한 메서드, 프로퍼티를 이용해서 만든 이유는 알고리즘을 풀면서, 다양한 메서드, 프로퍼티를 익숙하게 만들기 위해서이다.

알고리즘을 풀면서 고민되는 점
다른 분들이 작성하신 정답을 보면 메서드, 프로퍼티를 나처럼 많이 이용하시지 않았는데, 내가 작성한게 정답은 맞지만 알고리즘을 푸는 방식으로는 틀렸는가?에 대해서 고민이 많아진다...

profile
끝까지 하는 사람

0개의 댓글