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의 개수를 통해 사용된 알파벳의 개수를 구하는 코드를 만드는 삽질을 하고 다시 문제를 제대로 읽고 풀었다.ㅎ