728x90
문제
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
'ALGORITHM > 백준 With Node.js' 카테고리의 다른 글
[백준] 1152번 / 단어의 개수 / Node.js (0) | 2021.04.26 |
---|---|
[백준] 2908번 / 상수 / Node.js (0) | 2021.04.26 |
[백준] 1152번 / 단어의 개수 / Node.js (0) | 2021.04.26 |
[백준] 1152번 / 단어의 개수 / Node.js (0) | 2021.04.26 |
[백준] 1157번 / 단어 공부 / Node.js (0) | 2021.04.25 |
댓글