최종코드(코드링크)
for _ in range(int(input())):
array = input().strip()
left, right = 0, len(array) - 1
check = 0
for _ in range(len(array)):
if left >= right: break
if array[left] == array[right]:
left += 1
right -= 1
continue
if array[left] == array[right-1]:
temp = array[left:right]
if temp == temp[::-1]:
check = 1
break
if array[left+1] == array[right]:
temp = array[left+1:right+1]
if temp == temp[::-1]:
check = 1
break
check = 2
break
print(check)
1. 모든 경우의 수 계산 > 시간초과
def palindrome(char):
N = len(char) //2
first = char[:N]
second = char[-N::]
if first == second[::-1]: return True
else: return False
for _ in range(int(input())):
char = input()
if palindrome(char): print(0)
else:
while True:
if char[0] == char[len(char)-1]:
char = char[1:len(char)-1]
else: break
pseudo = False
or i in range(len(char)):
if palindrome(char[0:i] + char[i+1:]):
pseudo = True
break
if pseudo: print(1)
else: print(2)
'알고리즘 문제 풀이' 카테고리의 다른 글
[프로그래머스 - Python] 숫자 문자열과 영단어 (0) | 2024.08.09 |
---|---|
[백준 - Python] 30804. 과일 탕후루 (0) | 2024.08.09 |
[백준 - Python] 2230. 수 고르기 (0) | 2024.08.09 |
[백준 - Python] 1806. 부분합 (0) | 2024.08.09 |
[백준 - Python] 11728. 배열 합치기 (0) | 2024.08.09 |