백준 1152 단어의 개수 [JavaScript]

김한주·2022년 11월 3일
0

문제

영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.

입력

첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다.

출력

첫째 줄에 단어의 개수를 출력한다.

예제 입력 1

The Curious Case of Benjamin Button

예제 출력 1

6

예제 입력 2

The first character is a blank

예제 출력 2

6

풀이

//단어의 개수를 구하는 문제
const fs = require("fs")
const input = fs.readFileSync('/dev/stdin').toString().trim().split(' ');

//빈 값일 때 0, 아닐 때 단어의 개수
console.log(input=="" ? 0 : input.length)

해설

처음에 단순히 console.log(input.length)로 해서 계속 틀렸다. 빈 값이 입력되면 1이 출력되므로 0으로 출력되게 해주어야 한다.

  • == 과 ===의 차이
    동등 연산자(==)는 두 개의 피연산자가 동일한지 확인하며, Boolean값을 반환합니다. 일치 연산자(===)와는 다르게 다른 타입의 피연산자들끼리의 비교를 시도합니다.
console.log(1 == 1);
// expected output: true

console.log('hello' == 'hello');
// expected output: true

console.log('1' ==  1);
// expected output: true

console.log(0 == false);
// expected output: true

==는 값이 같은지 비교한다. 값이 같다면 타입이 달라도 true

console.log(1 === 1)   // true

console.log(1 === '1') // false

console.log(true === 1)  // false

console.log(true === 'true') // false

===는 같은 타입인지까지 비교한다. 값이 같아도 타입이 다르면 false.

profile
HANJUMON의 성장과정!

0개의 댓글