[node.js] 백준 1316번 그룹 단어 체커

bjyyyyy·2022년 8월 29일
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split("\n");

let number = input[0];
let word = [];
for (let i = 1; i < input.length; i++) {
    word.push(input[i]);
}
let result = 0;
for (let i = 0; i < number; i++) {
    let check = [];
    for (let j = 0; j < word[i].length; j++) {
        if (check.includes(word[i][j]) === false) {
            check.push(word[i][j]);
        } else {
            if (word[i][j] === word[i][j - 1]) {
                continue;
            } else {
                check = [];
                break;
            }
        }
    }
    if (check.length > 0) {
        result += 1;
    }
}

console.log(result);
  1. 문자열 요소에 반복문을 실행하여 check 배열에 해당 문자가 없으면 push한다.
  2. check 배열에 이미 해당 문자가 있을때 현재 index 바로 이전이 같은 문자면 continue하고 아닐시 check 변수에 빈배열을 재할당하고 반복문을 break한다.
  3. 내부 반복문이 종료되었을때 check 배열의 길이가 0보다 크면 result에 1을 더해준다.

단순히 연속되지 않은 중복이 있는지 확인하면 되는 문제였으나 코드가 깔끔하지 못한것같아 더 좋은 방법이 떠오른다면 수정 할 예정이다.

0개의 댓글