코딩테스트/BOJ

[백준][구현] 15927.회문은 회문아니야!!

박소민 2023. 8. 12. 21:43
15927.회문은 회문아니야!!
 

15927번: 회문은 회문아니야!!

팰린드롬이란 앞으로 읽으나 뒤로 읽으나 같은 문자열을 말한다. 팰린드롬의 예시로 POP, ABBA 등이 있고, 팰린드롬이 아닌 것의 예시로 ABCA, PALINDROME 등이 있다. 같은 의미를 가지는 여러 단어들을

www.acmicpc.net

 

  • 내 풀이
    • left, right 이동해가면서 회문아니면 구하고
    • 회문이면 2씩 더하고 left+1, right-1 해가는 식으로 하려했지만 실패

 

  • 다른 사람 풀이
    • 회문일경우
      • 회문에서 한글자만 빼면 회문이 아니기때문에 답: 길이 -1
      • 전체가 같은 글자로 회문인경우: -1
    • 회문 아닌경우
      • 답: 길이 
# left, right 이동하면서 찾으려했지만 실패
# 회문 -> 회문 길이 -1 이 답
# 회문인데 전부 같으면 -1

lst = input().rstrip()

left = 0
right = len(lst)-1


def palindrome(lst):
    if lst != lst[::-1]:  # 팰린드롬 아니면
        return len(lst)
    else:
        # 회문인데 전부 같은 문자인 경우
        if len(set(lst)) == 1:
            return -1
        else:
            # 회문이면 하나 없앤 값이 답
            return len(lst)-1


answer = palindrome(lst)

print(answer)