개발 노트/백준, 프로그래머스 풀이

[백준 11478/javascript] 서로 다른 부분 문자열의 개수

tokkiC 2022. 8. 20. 03:39

부분 문자열을 이중 for 문을 돌며 인덱스 번호로  substr 이나 slice 등으로 구해서

set에 추가하여 중복을 제거, set의 요소 수를 size로 구하여 출력하면 되는 문제이다

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

 

11478번: 서로 다른 부분 문자열의 개수

첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.

www.acmicpc.net

let input;

const readline = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});

readline.on("line", (line) => {
  input = line;
});

readline.on("close", () => {
  solution(input);
  process.exit();
});

const solution = (input) => {
  let set = new Set();
  let inplen = input.length;
  for (let i = 0; i < inplen; i++) {
    for (let j = 1; j <= inplen - i; j++) {
      set.add(input.substr(i, j));
    }
  }
  let ans = set.size;
  console.log(ans);
};