Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 자격증
- 티스토리챌린지
- 구름edu
- javascript
- 톺아보기
- 노마드 코더
- 개발자북클럽
- SQL 개발자
- SQLD
- K-Digital Credit
- nomadcoders
- js
- 비전공자를 위한
- 엘리스코딩
- 노마드코더
- 노개북
- boj
- 오블완
- Do it! 시리즈
- 백준
- 최원영 저자
- 알고리즘
- 제로베이스
- 모던 자바스크립트 deep dive
- 공부를 가장한 일기일지도
- CodeStates
- 프로그래머스
- 이해할 수 있는
- IT 지식
- 자바스크립트
Archives
- Today
- Total
개발자를 희망하는 초보의 자기개발 이야기
백준 1152번 단어의 개수 문제 - Node.js 본문
반응형

문제 원문 링크
문제
영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
입력
첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다.
출력
첫째 줄에 단어의 개수를 출력한다.
예제 입력 1
The Curious Case of Benjamin Button
예제 출력 1
6
예제 입력 2
The first character is a blank
예제 출력 2
6
예제 입력 3
The last character is a blank
예제 출력 3
6
풀이
const fs = require("fs");
const input = fs.readFileSync("dev/stdin").toString().trim().split(" ");
if (input[0] === "") {
console.log(0);
} else {
console.log(input.length);
}
의외로 정답 비율이 약 33%밖에 되지 않는 문제였는데 아마 예외처리 때문인 것 같다.
백준은 JS로 문제를 풀 때 input을 세번째 줄처럼 메서드를 통해서 처리하는게 기본이다.
따라서 split(" ")로 분리한 후 배열의 length를 답으로 제출하면 되겠다는 생각이었는데 1차 제출에서는 실패했다.
지문을 다시 읽어보니 함정이 있는데 '문자열은 공백으로 시작하거나 끝날 수 있다.' 와 '공백이 연속해서 나오는 경우는 없다.' 이다.
즉, 공백으로 시작해서 공백으로 끝나버리는 빈 문자열이 입력값이 될 수 있다.
이 부분만 예외처리 하면 의외로 간단하게 풀린다.
반응형
'자료구조&알고리즘 > BOJ(백준 온라인 저지)' 카테고리의 다른 글
백준 2444번 별 찍기 - 7 문제 - Node.js (0) | 2024.11.09 |
---|---|
백준 25083번 새싹 문제 - Node.js (0) | 2024.11.08 |
백준 10813번 공 바꾸기 문제 - Node.js (0) | 2024.10.22 |
백준 10810번 공 넣기 문제 - Node.js (0) | 2024.10.22 |
백준 2562번 최댓값 문제 - Node.js (0) | 2024.10.21 |