[백준] 10820번 문자열 분석

GiSeong Lee·2023년 11월 3일
0

문자열 분석

문제 링크

10820번: 문자열 분석

제출하는데 계속 틀리길래 뭐가 문젠가 싶었는데 빈 문자열 일 때 출력없이 그냥 넘겨야 했다.

코드

const input = require('fs').readFileSync('/dev/stdin').toString().split('\n')

const isLowerCase = str => str===str.toLowerCase() && str!== ' '
const isUpperCase = str => str===str.toUpperCase() && str!== ' '
const isNumber = str => Number.isInteger(Number(str)) && str !== ' '
const isBlank = str => str=== ' '
let answer = ''
for(let i=0; i<input.length; i++){
  if(input[i].length === 0) continue;
  let [lower, upper, number, blank] = [0,0,0,0]
  input[i].split('').forEach(e=>{
    if(isBlank(e)){
      blank++
    }
    else if(isNumber(e)){
      if(e === '\r'){
        return;
      }
      number++
    }
    else if(isLowerCase(e)){
      lower++
    }
    else if(isUpperCase(e)){
      upper++
    }
  })
  answer += `${lower} ${upper} ${number} ${blank} \n`
}

console.log(answer.trim())

줄바꿈 부호도 isNumber 함수에서 걸리길래 검색해보니 ASCII코드에서 걸리는 것 같았다. 때문에 isNumber함수에서 숫자를 판별하기전에 줄바꿈부호를 먼저 걸러주었다.

profile
프론트가 하고싶어요

0개의 댓글