[백준/JS] 1316번 - 그룹 단어 체커

Pakxe·2022년 10월 12일
1

PS

목록 보기
8/16
post-thumbnail

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



알고리즘 분류

  • 구현
  • 문자열

풀이

그룹단어가 아닌 경우는 첫번째로 바로 전 문자와 현재 문자가 일치하지 않으며, 두번째로 현재까지 읽은 모든 문자중에 현재 문자가 있어야 한다.
문자열의 0번째인 경우 바로 전 문자가 없기 때문에 continue로 넘어간다.
path는 바로 전 문자를 저장해두는 변수이다. 첫번째 조건을 판단하기 위해 사용한다.
sub는 현재까지읽은 문자들을 잘라 저장한다. 두번째 조건을 판단하기 위해 사용한다.

코드

const fs = require("fs");
let [n, ...arr] = fs.readFileSync("/dev/stdin").toString().trim().split("\n");

let path = "";
let str = "";
let sub = "";
let count = Number(n);
for (let i = 0; i < n; i++) {
  str = arr[i];
  for (let j = 0; j < str.length; j++) {
    if (j === 0) continue;
    else path = str[j - 1];
    sub = str.slice(0, j + 1);
    if (path !== str[j] && sub.split(str[j]).length - 1 >= 2) {
      count--;
      break;
    }
  }
}

console.log(count);
// 바로전문자랑 일치하지 않으면서 이전 문자들중에 현재 문자가 있으면 그룹단어 아님

설명에 오류가 있거나 이해가 어려운 부분이 있으면 댓글이나 이메일(pigkill40@naver.com)로 문의해 주시면 도움을 드리겠습니다.

0개의 댓글

관련 채용 정보