본문 바로가기
Algorithm/Baekjoon

[백준/BOJ] 11478번 - 서로 다른 부분 문자열의 개수 (C++)

by shine-jung 2021. 7. 17.
반응형

문제 링크

 

코딩하기 전 생각하기

/*
unordered_set으로 사전을 만들어보자.
2중 반복문과 substr 메서드를 이용해서 만들어지는 부분 문자열을 모두 구한다.
부분 문자열을 사전에 추가한다.
사전의 크기를 출력한다.
*/

 


 

코드

#include <iostream>
#include <bits/stdc++.h>
#include <unordered_set>
using namespace std;

int main() {
    unordered_set<string> dict;
    string s;
    cin >> s;
    int len = s.length();
    for ( int i = 0; i < len; i++ ) {
        for ( int j = 1; j < len - i + 1; j++ )
            dict.insert(s.substr(i, j));
    }
    cout << dict.size();
}

 


 

느낀점

 

파이썬에서 set과 [i:j]와 같은 인덱스 기능을 쓸뻔했지만

이번에는 C++ 레퍼런스를 참고하여 unordered_set 사용법과 substr 메서드를 배워서 써먹었다.

배워서 써먹는 일은 정말 짜릿한 일이다.

 

(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.

댓글 환영합니다!

반응형

댓글