티스토리 뷰

반응형
 

1620번: 나는야 포켓몬 마스터 이다솜

첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면

www.acmicpc.net

// 1.
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const [N, M] = input.shift().split(' ').map(num => parseInt(num));

// 2.
const orders = input.slice(0, N);
const questions = input.slice(N, N+M);

// 3.
const mon_first = orders.map((elem, idx) => [elem, (idx+1).toString()]);
const num_first = orders.map((elem, idx) => [(idx+1).toString(), elem]);
const map = new Map(mon_first.concat(num_first));

// 4.
questions.forEach(elem => { console.log(map.get(elem) )});
  1. 입력받은 값은 input 배열에 넣어준 후, 첫 번째 인덱스의 정보는 N과 M으로 별도로 초기화해둔다.
  2. N과 M 및 slice 메소드를 통해 도감 순서와 문제를 각각 orders와 questions 변수에 초기화해둔다.
  3. 포켓몬스터 이름으로 시작하는 배열과 도감 번호로 시작하는 배열을 각각 mon_first, num_first에 초기화한 후,
    concat을 통해 병합하여 Map을 초기화한다.
  4. 문제를 의미하는 questions의 모든 값을 순회하며 map으로부터 대응되는 값을 출력한다.

결과

98460 KB / 5720 ms

댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함