728x90
문제
https://www.acmicpc.net/problem/10820
코드
//브론즈2 문자열 분석
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split("\r\n");
//다른 문제들과달리 input에 trim()을 빼주는 이유는 trim() 함수를 통해 빈 문자열이 없어지기 때문이다. 입력값으로 (의도적으로)빈 문자열이 들어온다면 trim()이 자동으로 없애주는 상황을 막아야 한다.
//빈 문자열이 주어졌을 경우에 대한 예외처리
let except = input.filter((str) => str.length < 1);
if (except.length) input.splice(input.indexOf(except[0]), 1);
//각 문자열에 대해 전체문자열 길이에서 정규식을 이용하여 각 조건에맞는 길이 빼주기
input.forEach((str) => {
let lower = str.length - str.replace(/[a-z]/g, "").length;
let upper = str.length - str.replace(/[A-Z]/g, "").length;
let num = str.length - str.replace(/\d/g, "").length;
let blank = str.length - str.replace(/\ /g, "").length;
console.log(lower, upper, num, blank); //number형으로 각각 출력
});
후기
- 자꾸 틀렸다고 떠서 이유를 찾아보니 입력값을 받아올 때 trim()함수가 원인이었다. 이참에 trim함수에 대해 공부를 하였고, 밑 블로그를 통해 개념을 잡을 수 있었다
- https://velog.io/@dev_bomdong/trim-%EB%AC%B8%EC%9E%90%EC%97%B4-%EA%B3%B5%EB%B0%B1-%EC%A0%9C%EA%B1%B0
'알고리즘 > BOJ' 카테고리의 다른 글
[백준] 영화감독 숌 / JavaScript / node.js (0) | 2022.02.07 |
---|---|
[백준] 체스판 다시 칠하기 / JavaScript / node.js (0) | 2022.02.06 |
[백준] 좋다 / JavaScript / node.js (0) | 2022.02.05 |
[백준] 숫자 카드 / JavaScript / node.js (0) | 2022.02.04 |
[백준] 차집합 / JavaScript / node.js (0) | 2022.02.03 |