BOJ[1316] - 그룹 단어 체커 by JavaScript
그룹 단어 체커
문제
언어
- JavaScript
문제 풀이 step 1
- 문자열이 소문자로만 이루어져 있어서 ‘a’ ~ ‘z’의 개수를 셀 수 있도록 크기가 26인 배열을 준비합니다.
- 문자열을 처음부터 순회하면서 이전 문자를 기억하면서 각 문자의 개수를 세줍니다.
- 만약 현재 문자가 이전 문자와 다른데 문자열에서 그 문자의 개수가 0보다 크다면 그룹단어가 아닙니다.
소스 코드
const input = require("fs").readFileSync("/dev/stdin").toString().split("\n");
const solution = (input) => {
let T = parseInt(input[0]);
const arr = input.slice(1, T + 1);
let index = 1;
let ans = 0;
// 각 테스트케이스 마다
while (T-- > 0) {
const cntArr = Array(26).fill(0);
const str = input[index++];
let beforeChar = "";
let check = true;
for (let i = 0; i < str.length; i++) {
let index = str.charCodeAt(i) - "a".charCodeAt(0);
// 이전 문자와 다른데 cntArr가 0이 아니면 그룹단어가 아니다.
if (beforeChar !== str[i] && cntArr[index] !== 0) {
check = false;
break;
} else {
cntArr[index]++;
beforeChar = str[i];
}
}
if (check) ans++;
}
return ans;
};
console.log(solution(input));