const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split('');
let Arr = [];
let wordArr = [];
const A = input.filter(function(element, index) {
if(element.includes(' ') === true) {
Arr.push(index);
}
})
const a = input.slice(0,Arr[0])
wordArr.push(a);
for(let i=0; i < Arr.length; i++) {
let a = input.slice(Arr[i]+1, Arr[i+1])
wordArr.push(a);
}
let num = wordArr.length
console.log(num);
vscode에서는 잘 돌아간다. 맨처음에 slice가 아닌 splice로 했을 때 시간초과가 떠서 안됐는데 이건 86퍼까지인가 가다가 갑자기 틀렸다고 뜸. 왜인지 대체 모르겠음 근데 그러다가 내가 뻘짓을 했다는 사실을 발견함
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let inputt = fs.readFileSync(filePath).toString().trim().split(' ');
// 단어는 공백 *한개*로 구분되며
let num = inputt.length;
console.log(num);
input의 split을 ''가 아닌 공백기준으로 하면 공백기준으로 배열이 형성됨 즉, 단어끼리의 배열이 완성. vscode에서 잘나온다. 근데 역시 백준사이트에서 안됨. 왜지?
내가 호옥시 잘못한것 일까봐(아무리해도 맞는데)그래서 안하는 구글링을 했다. 그랬더니 테스트를 아예 아무것도 없는 거로 봤는데 1이 뜨는 것이다! 배열의 "길이"를 출력한 것이니 빈 배열도 길이는 1이다.
이것 때문에 계속 틀리게 나왔던 것! 이를 해결하기 위해 input의 길이가 1일 경우 빈배열이면 answer변수에 0을 넣게 했다.
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split(' ');
let answer = 0;
if(input.includes('')) {
answer = 0;
} else {
answer = input.length;
}
console.log(answer);
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split(' ');
let answer = 0;
for(let i =0; i < input.length; i++) {
if(input[i] !== '') {
answer++;
}
}
console.log(answer);
내가 한게 더 속도는 조금 더 빨랐다. 근데 뭐가 더 좋은 코드인지는 나는 모르겠다.
하지만 저렇게도 생각할 수 있겠구나 라는 생각을 하게됐다.
테스트 오만거 다 해보자!!!!테스트의 중요성!!!!!!!