일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 라이브러리 #IT지식 #CS지식
- 맵핑
- Python
- Anaconda #가상환경
- 스톱워치
- 백준 #알고리즘
- 알고리즘 #백준 #집합과맵
- Java #객체지향 # 프로그래밍 # SOLID #OOP
- 추상클래스 #인터페이스
- 프로그래머스 #파이썬 #python #슬라이싱 #코딩
- 문자열
- GPT #챗봇
Archives
- Today
- Total
고통은 사라지고 결과는 남는다. Records of Chansolve
백준 Python 서로 다른 부분 문자열의 개수 11478번 본문
11478번: 서로 다른 부분 문자열의 개수
첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다.
www.acmicpc.net
예제입력
ababc
예제출력
12
예제가 잘못 되었는지 출력하면 18로 나온다. 하지만 정답으로 찍힌다..

첫 번째 오답 코드이다.
s = input()
ans = []
for i in range(len(s)):
for j in range(i, len(s)):
temp = s[i:j + 1]
ans.append(set(temp))
print(len(ans))
중복되는 것을 빼주어야 되니까 리스트말고 집합으로 접근해야겠다.
최종 정답 코드이다.
s = input()
ans = set()
for i in range(len(s)):
for j in range(i, len(s)):
temp = s[i:j + 1]
ans.add(temp)
print(len(ans))
접근방법
- 문자열 S를 입력받는다. 부분 문자열을 저장할 집합 ans을 선언한다.
- 이중 for문을 돌면서 부분 문자열 temp를 구하고 temp를 ans에 추가한다.
- ans가 집합이기 때문에 중복된 문자열을 추가되지 않는다.
- 집합 ans의 길이를 출력한다.
'Algorithms' 카테고리의 다른 글
백준 Python 코딩은 체육과목 입니다 25314번 (0) | 2023.03.03 |
---|---|
백준 Python 꼬마정민 11382번 (0) | 2023.02.28 |
백준 Python 알고리즘 수업 - 알고리즘의 수행 시간 3 24264번 (0) | 2023.02.24 |
백준 Python ATM 11399번 (0) | 2023.02.22 |
프로그래머스 Python 햄버거 만들기 133502 (2) | 2023.02.16 |
Comments