백준

[백준 2941] 크로아티아 알파벳 (Node.js)

mark340 2023. 1. 1. 00:38

 

 

2941번: 크로아티아 알파벳

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=

www.acmicpc.net


 

 

문제 해결만을 우선적으로 생각하다보니 코드가 그야말로 단순무식해졌다.

숏코딩에 고수들의 접근 방식을 보며,, 감탄했다.

다들 이렇게 쉬운 방법으로 푸는구나.

고수들도.. 처음부터 잘 하지는 않았을 거라는 생각을 가지며.. 오늘도 배운다는 생각으로.. 

 

아래는 내가 처음으로 작성했던 코드

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

let sample = ["c=","c-","dz=","d-","lj","nj","s=","z="]
let word = [];

for(let i=0; i<input.length; i++){
  if(sample.includes(input[i]+input[i+1]+input[i+2])){
    word.push((input[i]+input[i+1]+input[i+2]))
  } else if(sample.includes(input[i]+input[i+1])){
    word.push((input[i]+input[i+1]))
  }
}

console.log(input.length - word.length)

 

 

정규표현식을 사용한 더 쉬운 해결방법

const fs = require('fs');
const input = fs.readFileSync('dev/stdin').toString().trim();
let a = input.replace(/c\=|c\-|dz\=|d\-|lj|nj|s\=|z\=/g, ' ');


console.log(a.length);