Javascript

[Javascript] 백준 1316 - 그룹 단어 체커

eulBlue 2024. 1. 30. 16:16
 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

와 .. 코드작성보다 문제를 이해하는데 시간이 더 많이 소요된것 같다.

연속된 알파벳은 o 연속되지 못하는, 반복되서 나오지 않는 알파벳은 x

happy
new
year
모두 통과
aba
abab
abcabc
a
a b a
a b a b
a b c a b c
a
결과 : 1
ab
aa
aca
ba
bb
a b
a a
a c a
b a
b b
결과 : 4
yzyzy
zyzyz
y z y z y
z y z y z
결과 : 0

이런식인 내용이였던 것 이였다 .. :(

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');

const c = Number(input[0]);
let sum = 0;

for (var i = 1; i <= c; i++) {
  const w = input[i];
  const l = [];
  let chk = true;

  for (var j = 0; j < w.length; j++) {
    if (l.indexOf(w[j]) === -1) {
      l.push(w[j]);
    } else {
      if (l.indexOf(w[j]) !== l.length - 1) {
        chk = false;
        break;
      }
    }
  }

  if (chk) {
    sum += 1;
  }
}

console.log(sum);
  • indexOf 를 통해 해당 알파벳이 들어있는지 확인 → 없다면 l 에 push
  • 값이 있고 ( 값이 있다면 1 반환 ) 길이가 1이 아니라면 그룹단어가 아닌걸로 판단  break