[JS][백준]2941_크로아티아 알파벳
Algorithm/BaeKJoon

[JS][백준]2941_크로아티아 알파벳

문제 번호

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net

 

 

알고리즘 분류

구현, 문자열

 

문제 풀이

 오래전에 C++를 사용해서 풀었을때는 단순하게 조건식을 여러개 사용해서 풀이하였다.

좀 더 좋은 방법이 없을까 고민하다가 다음의 블로그에서 정규식을 사용하는것을 발견하였다.

 

 

백준 2941번: 크로아티아 알바펫(Croatia Alphabet) Node.js(JavaScript)

Code 😢 단순 조건문 처리로는 풀기 싫어서, 어렵게 풀려다가 생각하는 시간이 조금 걸렸다. 그리고 문제를 보자마자 Regular Expression이 떠올라서, RegExp로 풀려고 공부를 조금 했다. 😊 조건문으로

dpsc615.tistory.com

 

 그래서 정규식에 대해서 찾아보았다.

 

정규 표현식 - JavaScript | MDN

정규 표현식은 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴입니다. 자바스크립트에서, 정규 표현식 또한 객체입니다.  이 패턴들은 RegExp의 exec 메소드와 test 메소드  ,

developer.mozilla.org

 

 정말 간단하게 요약하자면 정규식이란 어떤 패턴을 만들어서 패턴에 해당하는 문자열 혹은 문자열중 일부 구간을 처리할 수 있다.

 

 위의 두개의 링크를 참고하여서 문제에서 주어진 '크로아티아 알파벳'에 해당하는 8개의 문자들을 정규식으로 등록하고 해당 크로아티아 알파벳들을 공백으로 처리했다. 이 과정에서 String.replace() 메소드를 사용하였다.

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

var input = [];

rl.on('line', function(line){
    input.push(line);
});
rl.on('close',function(){
    Solution(input)
});

function Solution(input){
    var S = String(input[0]);
    const RegExp = /c\=|c\-|dz\=|d\-|lj|nj|s\=|z\=/g;
    const answer = S.replace(RegExp,' ');

    //console.log(answer);
    console.log(answer.length);
}

특이사항

 문자열을 처리할때 정규식을 알고 있으면 간단하게 해결 할 수 있는 문제들이 종종 있어왔다.

 

 

'Algorithm > BaeKJoon' 카테고리의 다른 글

[JS][백준]2231_분해합  (0) 2021.08.18
[JS][백준]2798_블랙잭  (0) 2021.08.18
[JS][백준]2908_상수  (0) 2021.08.05
[JS][백준]1152_단어의 개수  (0) 2021.08.05
[JS][백준]1157_단어 공부  (0) 2021.08.05