Tesseractjh
한 걸음씩
Tesseractjh
전체 방문자
오늘
어제
  • 전체 (293)
    • IT (30)
      • JavaScript (7)
      • TypeScript (5)
      • React (5)
      • Next.js (3)
      • MongoDB (2)
      • Webpack (2)
      • HTML & CSS (1)
      • Git (0)
      • AWS (1)
      • 기타 (4)
    • 연습장 (259)
      • 백준(BOJ) 문제풀이 (185)
      • 프로그래머스 문제풀이 (61)
      • LeetCode 문제풀이 (2)
      • HackerRank 문제풀이 (7)
      • 낙서장 (3)
      • 기타 (1)
    • 프로젝트 (3)
      • 지뢰피하기 (1)
      • 키릴-라틴 문자 변환기 (1)
      • Flex & Grid (1)
    • 멋쟁이사자처럼 프론트엔드 스쿨 1기 (1)
      • 일기 & 회고록 (1)

인기 글

티스토리

hELLO · Designed By 정상우.
Tesseractjh

한 걸음씩

연습장/백준(BOJ) 문제풀이

[백준 1620] 나는야 포켓몬 마스터 이다솜 with Node.js

2021. 4. 27. 01:50

문제 링크

www.acmicpc.net/problem/1620

 

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

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

www.acmicpc.net

풀이

const input = require("fs").readFileSync("/dev/stdin").toString().trim().split(/\s/);
const n = +input[0];
const m = +input[1];
const arr = input.slice(2, n+2);
const pokemonMap = new Map(arr.map((v, i) => [v, i+1]));
const question = input.slice(n+2);
const answer = [];
question.forEach(v => {
    if (Number.isNaN(+v)) answer.push(pokemonMap.get(v));
    else answer.push(arr[+v-1]);
});
console.log(answer.join("\n"));

포켓몬 이름을 저장한 배열과, 그 배열로 포켓몬 이름과 번호를 키와 값으로 갖는 Map 객체를 준비한다. 문제가 문자열이면 Map객체에서 번호를 찾고, 숫자면 배열에서 포켓몬 이름을 찾는다.

 

무언가 깔끔하진 않지만, Map객체 없이 배열만으로 번호를 찾으려면 arr.indexOf를 사용해야 하는데, 이러면 시간 초과가 뜬다.

저작자표시 비영리 (새창열림)

'연습장 > 백준(BOJ) 문제풀이' 카테고리의 다른 글

[백준 11652] 카드 with Node.js  (0) 2021.04.29
[백준 1874] 스택 수열 with Python  (0) 2021.04.28
[백준 15649] N과 M (1) with Python  (0) 2021.04.27
[백준 1120] 문자열 with Node.js  (0) 2021.04.26
[백준 9461] 파도반 수열 with Python  (0) 2021.04.26
    '연습장/백준(BOJ) 문제풀이' 카테고리의 다른 글
    • [백준 11652] 카드 with Node.js
    • [백준 1874] 스택 수열 with Python
    • [백준 15649] N과 M (1) with Python
    • [백준 1120] 문자열 with Node.js
    Tesseractjh
    Tesseractjh
    바닐라 자바스크립트를 좋아하는 개발자입니다

    티스토리툴바