Algorithm

[백준 / NodeJS] 10809번 알파벳 찾기

cob 2023. 4. 22. 13:53

 

https://www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

 

 


1. 문제 설명

알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.

 

 

 

 


2. 입출력

 

 

 

 


3. 문제 풀이

const [n] = require("fs")
  .readFileSync("./input.txt")
  .toString()
  .trim()
  .split(/\r\n/);

//const [n, ...arr] = require("fs").readFileSync("/dev/stdin").toString().trim().split(/\n/);
function solution(n) {
  // 1) 각 알파벳을 Map 객체로 선언
  const map = new Map([
    ["a", -1], ["b", -1], ["c", -1], ["d", -1], ["e", -1], ["f", -1],
    ["g", -1], ["h", -1], ["i", -1], ["j", -1], ["k", -1], ["l", -1],
    ["m", -1], ["n", -1], ["o", -1], ["p", -1], ["q", -1], ["r", -1],
    ["s", -1], ["t", -1], ["u", -1], ["v", -1], ["w", -1], ["x", -1],
    ["y", -1], ["z", -1],
  ]);

  // 2) 입력값 길이 만큼 반복한다.
  for (let i = 0; i < n.length; i++) {
    // 3) 최초 입력 값일 때만 위치를 저장한다.
    if(map.get(n[i]) === -1) map.set(n[i], i);
  }
  // 4) value 값 출력한다.
  console.log([...map.values()].join(" "));
}
solution(n);

 

 

 

반응형