[javascript] 백준 1620번 - 나는야 포켓몬 마스터 이다솜

Chaedie·2022년 6월 14일
0

Javascript - PS

목록 보기
3/24
post-custom-banner
//* 인풋 - 디폴트
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = fs.readFileSync(filePath).toString().split('\n');

//* 인풋 - 커스텀
const inputZero = input[0].split(' ').map((num) => Number(num));
const n = inputZero[0];
const m = inputZero[1];

let map = new Map();
let mapRevere = new Map();

for (let i = 1; i <= n; i++) {
  map.set(i, input[i].trim());
  mapRevere.set(input[i].trim(), i);
}
for (let i = 1; i <= m; i++) {
  if (map.has(Number(input[i + n]))) {
    console.log(map.get(Number(input[i + n])));
  } else {
    console.log(mapRevere.get(input[i + n].trim()));
  }
}

생각

Java로 한번 풀었던 문제고, 풀이가 그대로 기억나서 JS로 옮기기만 했다.
그런데도 시간이 꽤나 걸렸다.

이유는 "인풋이 숫자인지 영어인지 어떻게 구분하나?"를 모르겠어서 그랬다. Java에선 parseInt할 때 try-catch문으로 가느냐에 따라 예외처리를 했었는데 (꼼수?ㅋㅋ) JS에선 typeof Number(인풋) 해도 string을 인풋으로 넣어도 number()에 넣으면 number로 인식하더라.... 🤣🤣

울어야 되나 웃어야 되나 ㅋㅋㅋ

아무튼 Map 2개 만들고 has로 확인해서 출력했다...
이제 다른 사람들의 풀이를 봐야겠다.

JS...
자유분방한 JS...
그래서 오히려 더 까다롭다.
profile
TIL Blog - Today's Intensive Learning!
post-custom-banner

0개의 댓글