백준 2941번 크로아티아 알파벳 - Node.js

프동프동·2022년 5월 27일
0

알고리즘 - Node.js

목록 보기
17/116
post-thumbnail

크로아티아 알파벳

문제

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.

예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.

입력

첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.

단어는 크로아티아 알파벳으로 이루어져 있다. 문제 설명의 표에 나와있는 알파벳은 변경된 형태로 입력된다.

출력

입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

예시 입력 1

ljes=njak

예시 출력 1

6

예시 입력 2

ddz=z=

예시 출력 2

3

예시 입력 3

nljj

예시 출력 3

3

해결 방법

  1. 정해진 시간내에 해결하지 못해 개인 블로그를 보았음
  2. 백준님이 만드신 답
  3. ㄷㄷ. 간결함..
  4. 해당 문자열에서 크로아티아 알파벳을 찾으면 배열로 쪼갠 후 Q로 변환시킨다.
  5. 마지막에 Q를 포함한 변하지 않은 문자열의 개수를 구하면 완료

split() 메서드는 String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눕니다.
join() 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.

MDN split() 링크
MDN join() 링크

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

let croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='];

function solution(input) {
  for (let alphabet of croatia) {
    input = input.split(alphabet).join('Q');
  }

  return input.length; // return input일 경우 QeQQak를 반환한다.
}

console.log(solution(input));
profile
좋은 개발자가 되고싶은

0개의 댓글