반응형
[문제 출처]
https://www.acmicpc.net/problem/11478
[문제 풀이]
주어진 문자열이 있을 때 해당 문자열의 부분 문자열의 개수를 구하는 문제이다.
처음 접근을 할 때는 길이가 1인 부분 문자열, 2인 부분 문자열과 같이 길이에 초점을 맞춰 문제를 해결하려고 했으나 복잡해져서 좀처럼 실마리가 보이지 않았다.
그래서 다른 코드를 참고해보니 길이가 아닌 부분 문자열의 시작부분에 초점을 맞춰야 간단하게 풀 수 있는 문제였다.
문제를 해석하고 답을 찾으려고 할 때 끝까지 잡고 푸는 것도 중요하지만 적절한 판단을 통해 다른 방향으로 바꾸는 것 또한 중요한 것 같다.
이중 for문을 통해 부분 문자열을 구하는 코드이다.
바깥쪽 for문에서는 주어진 문자열에서 부분 문자열이 시작되는 부분을 지정해주고,
안쪽 for문에서는 i번째부터 시작해서 길이가 1인 부분 문자열, 2인 부분 문자열... 등을 구한다.
data = input()
result = set()
for i in range(len(data)):
for j in range(i, len(data)):
result.add(data[i:j+1])
print(len(result))
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 3009 네 번째 점 (0) | 2022.09.28 |
---|---|
[python/파이썬] 백준 1085 직사각형에서 탈출 (0) | 2022.09.27 |
[python/파이썬] 백준 1764 듣보잡 (2) | 2022.09.21 |
[python/파이썬] 백준 10816 숫자 카드 2 (0) | 2022.09.20 |
[python/파이썬] 백준 1620 나는야 포켓몬 마스터 이다솜 (0) | 2022.09.19 |