python 11478번 서로 다른 부분 문자열의 개수 (백준)
a = input()b = len(a)def f(x): c=set() for y in range(b-x): c.add(a[y:x+y+1]) return len(c)d = 0for x in range(b): d+=f(x)print(d) 풀이 : set (집합) python 의 set은 중복이 아닌 값들로만 이루어져 있습니다.즉 처음 입력받은 문자열을 쪼개서 set에 집어넣으면 자연스레 중복이 아닌 값들만 남게 되고, 이 set의 길이가 중복이 아닌 문자열들의 개수임을 알 수 있습니다. 여기서는 함수를 사용하여특정 길이끼리만을 비교하도록 했습니다. (길이가 1인것들, 길이가 2인것들,... 끼리만 서로 비교)이렇게 해야 속도가 더욱 빨라집니다. https://www.acmi..
Python/BAEKJOON
2025. 2. 27. 15:40
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- find
- BFS
- 그래프
- 플로이드
- 백준
- C언어
- 스택
- DP
- Krustal
- 정렬
- 1835번
- 누적 합
- union
- 세그먼트 트리
- 덱
- 그리디
- 1835
- Lazy Propagation
- DFS
- 브루트포스
- 최대공약수
- 최소 스패닝 트리
- 기하학
- 오프라인 쿼리
- XOR
- PASCAL
- Segment Tree
- java
- C++
- 누적합
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함