백준 11478 - 서로 다른 부분 문자열의 갯수 (substr) JS 본문
반응형
https://www.acmicpc.net/problem/11478
문제는 단순한 편이다.
중복 처리는 지난 포스팅에서 활용했던 set() 을 사용하면 되고, 문자열 자르는 것은 substr 메서드를 활용했다.
이전까지는 대부분 slice를 활용해 문자열을 잘랐는데 왜 substr 메서드를 사용했느냐 묻는다면,
slice 메서드는 slice(시작 인덱스, 끝 인덱스) 로 문자열을 자르는 것이고
substr 메서드는 substr(시작 인덱스, 자를 길이) 로 문자열을 자르는 것이기 때문에 이런 문제에서 더 직관적일 것이라는 생각이었다.
풀이 코드 다음과 같다.
const fs = require('fs')
const input = fs.readFileSync(process.platform === "linux" ? "/dev/stdin":"입력.txt")
.toString().trim()
function solution(data) {
const set = new Set()
data.split('').forEach((_, i)=> {
// 만약 총 data의 길이가 5라면
// i = 0 일 때, 길이 5의 문자열 1개
// i = 1 일 때, 길이 4의 문자열 2개를 반환한다고 볼 수 있다
for(let j = 0 ; j <= i ; j ++) {
set.add(data.substr(j, data.length - i))
}
})
console.log(set.size)
}
solution(input)
반응형
'개발 > algorithm' 카테고리의 다른 글
백준5567 - 결혼식 (그래프) JS (0) | 2023.09.18 |
---|---|
백준15988 - 1,2,3 더하기 3 (다이나믹 프로그래밍) JS (0) | 2023.09.17 |
백준 2563 - 색종이 (set) JS (0) | 2023.09.14 |
프로그래머스 - Lv.2 전화번호 목록 (해시) JS (0) | 2023.09.13 |
백준 1487 - 물건팔기 (reduce) JS (0) | 2023.09.12 |
Comments