백준 1152 자바스크립트(문자열) 단어의 개수
문제
영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
입력
첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다.
출력
첫째 줄에 단어의 개수를 출력한다.
해결 과정
- 공백으로 단어가 구별되기 때문에 공백 +1 로 갯수 파악 => 실패
- 문자열을 공백으로 분리하여 배열에 넣은 뒤 갯수 파악 => 성공
- ‼️ 특수 케이스가 있어서 한번 더 생각해야 되는 문제(‘‘값 처리)
- 입력받을 문자열 선언
- 입력받은 문자열 앞뒤 공백 없애기 (trim())
- 문자열이 ‘’ 일때 0 출력
- 문자열에 단어가 있을 때 배열의 길이 출력
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdin
});
let input = [];
rl.on('line', function (line){
input.push(line);
}).on('close',function (){
let str = input[0].trim().split(' ');
if (str[0] === ''){
console.log(0)
} else {
console.log(str.length)
}
});
쉽다고 생각하고 막 풀어서 한참 헤맨 문제. 테스트 케이스에 예외 사항도 넣어 줬다면…… 빈공간 갯수를 활용해서 구하는 방법 좀 더 생각해 봐야겠다.