본문 바로가기
ALGORITHM/백준 With Node.js

[백준] 1152번 / 단어의 개수 / Node.js

by LAY CODER 2021. 4. 26.

문제

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net

 


 

CODE

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

rl.on('line', function (line) {
    let word = line;

    // 해당 크로아티아 단어를 문자열에서 전부 찾는 정규식
    const regex = /c\=|c\-|dz\=|d\-|lj|nj|s\=|z\=/g;
    // 해당 크로아티아 단어를 * 로 치환
    word = word.replace(regex, '*');
    console.log(word.length);

    // ============================== 2번 ==============================

    let word = line;
    const croatian = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='];

    for (let alphabet of croatian) {
        // 크로아티아 단어 기준으로 split하고 그 자리를 *로 대체하고 string을 만들어 준다.
        word = word.split(alphabet).join('*');
    }
    console.log(word.length);

    rl.close();
}).on('close', function () {
    process.exit();
});

 

정규 표현식을 쓰는 방식과 쓰지 않는 방식 두 가지가 있다.

 

 

정규 표현식을 쓰지 않을 경우,

 

크로아티아 단어들 만큼 for문을 돌려 해당 단어를 '*'(아무 기호나 숫자)로 바꿔

 

단어의 길이를 구하는 방법이고

 

 

정규 표현식을 이용하면

 

크로아티아 단어를 문자열에서 전부 찾는 정규식을 만든 다음

 

String.replace()를 이용하여 해당 크로아티아 단어를 '*'로 치환하는 방식이다.

 

References


dpsc615.tistory.com/73

댓글