[JS] 백준 1152 - 단어개수

n-u·2022년 7월 24일
0

Algorithm

목록 보기
31/33
post-thumbnail

백준 1152 - 단어개수

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

제출한 풀이

const fs = require("fs");
const file = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(file).toString().trim().split(" ");

if (input[0] === "") {
  console.log(0);
} else {
  console.log(input.length);
}
  • 문자열을 공백을 기준으로 잘랐을때의 배열의 길이를 출력하면 되겠다 생각해서 제출했는데 오답이 나왔다.
  • 예외의 케이스를 생각해야 한다는 것을 알게 되었고, 공백이었을때의 예외처리를 해서 제출하였다.

문제를 풀면서 알게 된 것

  • trim() : 계속해서 오답이 나와서 이상하다고 생각했는데 trim()을 사용하니 정답이 되었다.
    • trim()은 문자열 양 끝의 공백을 제거해준다.
  • 예외처리에 대해 생각하기




😂문제를 잘 못 이해해서...

문제를 잘 못 이해해서 문장에 사용된 철자의 개수를 구해 출력하도록 하는 코드로 문제를 풀다가 답이 너무 많이 나와서 다시 문제를 읽게 되고, 내가 잘 못 풀고 있음을 알게 되었다...

문제를 잘 읽어보자 !

잘못 이해해 풀어본 코드

// 1. 알파벳배열개수를 가진 배열을 생성한다. fill(false)
// 2. input의 요소들을 하나로 쪼갠다.
// 3. 아스키코드의 숫자를 이용해 알파벳 숫자 배열의 false -> true로 만든다.
// 4. true의 개수를 구해 출력한다.

let Arr = new Array(26).fill(false);

for (let i = 0; i < input.length; i++) {
  let splitArr = input[i].split("");
  for (let j = 0; j < splitArr.length; j++) {
    Arr[splitArr[j].charCodeAt(0) - 65] = true;
  }
}

let count = 0;
const result = Arr.filter((elem) => {
  if (elem === true) count++;
});

console.log(count);

틀렸는지 맞았는지는 잘 모르겠지만, true의 개수를 통해 사용된 알파벳의 개수를 구하는 코드를 만드는 삽질을 하고 다시 문제를 제대로 읽고 풀었다.ㅎ

profile
기록하며 발전하는 삶

0개의 댓글