문제 : https://www.acmicpc.net/problem/1152
1152번: 단어의 개수
첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열
www.acmicpc.net
Sol )
1. " "을 기준으로 문자열을 나눠서 배열로 입력받는다.
2. 배열 전체 길이를 result 변수에 저장
3. 배열의 첫 번째 값이 빈 값이면 (첫 번째 공백이 들어왔으면) result -= 1
4. 배열의 마지막 값이 빈 값이면 (마지막 공백이 들어왔으면) result -= 1
5. result = 단어의 개수
소스코드 )
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split(" ");
let result = input.length;
if (input[0] === ""){
result--;
}
if (input[input.length-1] === "\n"){
result --;
}
console.log(result);
sol2 한줄코딩 )
1. 인풋 값을 " "을 기준으로 split() 해서 해당 배열을 돌면서 공백이 아닌 (단어인) 개수를 카운트해서 return 값을 console에 출력
한 줄 코딩 소스코드 )
console.log(require("fs").readFileSync("/dev/stdin").toString().split("\n")[0].split(" ").reduce((acc, cur) => {if (cur !== "") {acc++;}return acc;}, 0));
// 가독성 있게 다시 표현
console.log(
require("fs")
.readFileSync("/dev/stdin")
.toString()
.split("\n")[0]
.split(" ")
.reduce((acc, cur) => {
if (cur !== "") {
acc++;
}
return acc;
}, 0)
);
'Problem Solving > boj.kr (JS)' 카테고리의 다른 글
[BOJ / 자바스크립트] 2941 : 크로아티아 알파벳 (0) | 2022.02.26 |
---|---|
[BOJ / 자바스크립트] 5622 : 다이얼 (0) | 2022.02.26 |
[BOJ / 자바스크립트] 2908 : 상수 (0) | 2022.02.26 |
[BOJ / 자바스크립트] 1157 : 단어 공부 (0) | 2022.02.26 |
[BOJ / 자바스크립트] 2675 : 문자열반복 (0) | 2022.02.13 |
댓글