백준, 1620 나는야 포켓몬 마스터 이다솜 javascript

otter·2022년 2월 12일
0
post-custom-banner

백준, 1620 나는야 포켓몬 마스터 이다솜

📖 https://www.acmicpc.net/problem/1620

👨‍💻 문제 풀이

  • 해쉬맵 이용해서 금방 풀었다.
  • 이번 문제는 키, 밸류가 있는 문제므로 map을 사용했다.
  • map을 하나만 사용하면 밸류로 키를 검색할때 시간초과가 발생한다. (indexOf나 find 등을 사용하게 되는데 시간복잡도가 크다)
  • 그래서 그냥 map을 두개 만들었다..(아주 naive한 발상)

💻 제출한 코드

const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');

const [N, M] = input.shift().split(' ');

const nameMap = new Map();
const numMap = new Map();
for(let i=0; i<N; i++) {
    nameMap.set(i+1, input[i]);
    numMap.set(input[i], i+1);
}


let answer = '';
for(let i=N; i<input.length; i++) {
    if(isNaN(input[i])) {
        answer += numMap.get(input[i]) + '\n';
    } else {
        answer += nameMap.get(+input[i]) +'\n';
    }
}
console.log(answer);

이번 문제를 풀면서,

  • 백준의 클래스3에는 hash 자료구조 문제가 좀 있다.
  • javascript에서는 map, set으로 손쉽게 풀 수 있다.
  • 다만, 뭔가 너무 map,set만 생각해서 푸는 듯한 느낌도 있다.
  • 이 문제의 node 맞힌 분들을 보면 아주 색다른 방식으로 푸신 분들도 많았다!
profile
http://otter-log.world 로 이사했어요!
post-custom-banner

0개의 댓글