-
1254. [Python]팰린드롬 만들기Python_알고리즘/Silver II 2023. 8. 4. 10:57
1. 문제
https://www.acmicpc.net/problem/1254
1254번: 팰린드롬 만들기
동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는
www.acmicpc.net
2. 접근 방법
- 시간 제한: 2초
- 메모리 제한: 128MB
- 브루트 포스
3. 파이썬 코드
word = input() # 단어 길이 word_length = len(word) # 단어랑 단어의 역순이 같으면 팰린드롬 이므로 길이 출력 if word == word[::-1]: print(word_length) # 다른 경우 else: # 단어의 0번 인덱스부터 끝까지 탐색하며 for i in range(word_length): # check_word 의 초기값으로 input 단어 입력 check_word = word # 이후 단어의 i 번인덱스까지 문자를 역순으로 더함 check_word += word[:i+1][::-1] # 더한 문자가 팰린드롬인지 판단 if check_word == check_word[::-1]: print(len(check_word)) break
4. 문제를 풀고난 후 생각
- 단어를 가져와서 그 단어를 역순으로 더해나가며 팰린드롬인지 판단하는 문제
- 구현 자체는 간단하게 해결됐으며 어렵지 않은문제다.
- 각각 단어의 0~ 끝까지 인덱스를 탐색하며 거꾸로 더해나가며 팰린드롬인지 체크하고 팰린드롬일 경우 길이를 출력하는 것으로 끝낸다.
5. 문제를 푸는데 도움이 되는 지식
- 브루트 포스
'Python_알고리즘 > Silver II' 카테고리의 다른 글
1260. [Python]DFS와 BFS (0) 2023.08.08 1874. [Python]스택 수열 (0) 2023.08.07 1541. [Python]잃어버린 괄호 (0) 2023.08.06 1024. [Python]수열의 합 (0) 2023.08.04 10799. [Python]쇠막대기 (0) 2023.02.13