문제 링크
풀이
const texts = require("fs").readFileSync("/dev/stdin").toString().split("\n");
if (texts[texts.length-1] === "") texts.pop();
texts.forEach(i => {
let d = "";
[/[a-z]/g, /[A-Z]/g, /\d/g, /[ ]/g].forEach(reg => d += i.match(reg) ? i.match(reg).length+" " : "0 ");
console.log(d.slice(0, d.length-1));
});
정규표현식을 활용하여 소문자, 대문자, 숫자, 공백의 개수를 세서 출력하였다.
두 번째 줄은 require("fs".readFileSync("/dev/stdin").toString().split("\n")의 결과로 종종 마지막 요소로 공백("")이 추가된 배열을 반환할 때가 있는데, 이를 감지하여 마지막 요소인 공백을 제거하기 위함이다.
'연습장 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 10773] 제로 with Python (0) | 2021.04.05 |
---|---|
[백준 1373] 2진수 8진수 with Node.js (0) | 2021.04.04 |
[백준 2309] 일곱 난쟁이 with Node.js (0) | 2021.04.03 |
[백준 1026] 보물 with Python (0) | 2021.04.03 |
[백준 1076] 저항 with Node.js (0) | 2021.04.03 |