문제
코드
function sol(input) {
input = input.trim();
if (input === "") return 0;
return input.split(" ").length;
}
// 백준에서 입력을 받는 코드
require("readline")
.createInterface(process.stdin, process.stdout)
.on("line", (line) => {
console.log(sol(line));
})
.on("close", () => {
process.exit();
});
풀이
문제의 조건
첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다.
문자열의 길이는 1,000,000을 넘지 않는다.
단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다.
또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.
단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
무작정 " "로 분리한 배열의 길이를 구하려 하면 에러가 발생한다.
예외 케이스를 고려해보면,
입력이 "", " ", " " 등으로 주어지거나, 문자열의 맨 앞이나 뒤에 공백이 존재할 수도 있다.
그러므로 trim 메서드로 문자열 양 끝의 공백을 제거해주고,
양 끝 공백이 제거된 문자열이 "" 일 때 split(" ")의 길이는 1이 되므로, 이 경우에는 0을 반환한다.
이외의 경우에서는 split(" ")에 의해 나눈 배열의 길이를 반환한다.
'DS & Algorithm > baekjoon' 카테고리의 다른 글
[백준] 1316번 그룹 단어 체커 - JavaScript(NodeJS) (0) | 2021.07.02 |
---|---|
[백준] 1037번 약수 - JavaScript(NodeJS) (0) | 2021.07.01 |
[백준] 15990번 1, 2, 3 더하기 5 - JavaScript(NodeJS) (0) | 2021.06.09 |
[백준] 1157번 단어 공부 - JavaScript(NodeJS) (0) | 2021.06.09 |
[백준] 9663번 N-Queen - JavaScript(NodeJS) (1) | 2021.06.08 |