Algorithm

[백준 / NodeJS] 10808번 알파벳 개수

cob 2023. 4. 21. 21:44

 

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

 

10808번: 알파벳 개수

단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.

www.acmicpc.net

 

 

 


1. 문제 설명

알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오.

 


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", 0], ["b", 0], ["c", 0], ["d", 0], ["e", 0], ["f", 0],
    ["g", 0], ["h", 0], ["i", 0], ["j", 0], ["k", 0], ["l", 0],
    ["m", 0], ["n", 0], ["o", 0], ["p", 0], ["q", 0], ["r", 0],
    ["s", 0], ["t", 0], ["u", 0], ["v", 0], ["w", 0], ["x", 0],
    ["y", 0], ["z", 0],
  ]);

  // 2) 입력값 길이 만큼 반복
  for (let i = 0; i < n.length; i++) {
    // 3) 입력 알파벳 증가
    map.set(n[i], map.get(n[i]) + 1);
  }
  // 4) value 값만 출력한다
  console.log([...map.values()].join(" "));
}
solution(n);

 

 

 

반응형