백준 1152번 단어의 개수-JS

yugyeongKim·2021년 10월 11일
0

백준

목록 보기
8/52
post-custom-banner

- 내가 처음 짠 코드

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);

내가 한게 더 속도는 조금 더 빨랐다. 근데 뭐가 더 좋은 코드인지는 나는 모르겠다.
하지만 저렇게도 생각할 수 있겠구나 라는 생각을 하게됐다.

- 느낀점

테스트 오만거 다 해보자!!!!테스트의 중요성!!!!!!!

post-custom-banner

0개의 댓글