본문 바로가기

자료구조+알고리즘/BOJ

[1152][백준_브론즈2] 단어의 개수 - JavaScript

https://www.acmicpc.net/problem/1152

 

1152번: 단어의 개수

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

www.acmicpc.net

 

 

 

 

배열로 받은 string의 length 만 찍으면 되는 쉬운 문제 일 줄 알았는데 오잉?ㅇ? 틀림

 

## 처음 푼 풀이

const fs = require('fs');
const input = fs.readFileSync('./input.txt').toString().trim().split(' ');
console.log(input.length);

 

 

=> 반례 !! 

 

' ' 

공백을 입력받았을 때 1로 카운팅이 되버린다 

 

 

 

 

 

## 다시 푼 풀이

입력 받은 문자를 trim으로 앞뒤 공백만 없애버리고 해당 문자열이 ' ' 공백인지 체킹! 

아니라면  ' ' 공백단위로 끊어서 string을 array 에 저장해서 array 길이 구하면 끝 

 

(주의하자 🔥)

 

 

const input = fs.readFileSync('./input.txt').toString().trim();
const arr = input.split(' ');

console.log(input === '' ? 0 : arr.length);

 

 

 

 

 

 

 

 

 


 

node.js 실행 사이트

 

새 NodeJS 프로그램 만들기 - 마이컴파일러 - myCompiler

실행 코드 코드 저장 기존 코드를 유지하시겠습니까? 에디터에 코드가 있는 동안 언어를 전환하려고 합니다. 이를 유지하려면 “기존 코드 유지”를 선택합니다. 예제로 바꾸려면 “예제로 바

www.mycompiler.io

↪️ node 에서 입력 받을 땐, 아래 입력으로 테스트를 해본다

const input = require('fs').readFileSync('/dev/stdin').toString().split(' ');

 

 

https://velog.io/@bami/%EB%B0%B1%EC%A4%80%EC%97%90%EC%84%9C-Javascript-%EC%9D%B4%EC%9A%A9%ED%95%98%EA%B8%B0

 

velog

 

velog.io

(참고)해당 글에서 readFileSync 보단 readline 방식을 권장하고 있기는 하네요 .. readline 방식으로도 코테푸는 법을 익혀야 겠습니다 

728x90
반응형