boj 1254 - △

📍생각 logic

  1. 주어진 문자열에서 중간을 잘라 팰린드롬이 되는 부분을 찾는다.
  2. 잘린 만큼의 문자열 길이를 더해 최종 값을 출력한다.

❗️ERROR point

  • 중간에 slicing할 생각을 못함
  • 아마도 이 부분 파이썬 기본문법 숙지가 안된 듯

📌 파이썬 기본문법 - Extended slicing

arr[A:B:C]는 index A ~ index B까지 C의 간격으로 slicing해 리스트를 만들어라

  • A none : 처음부터
  • B none : 리스트 끝까지
  • C none : 한 칸 간격

다중문자열

a = [1,2,3,['a','b','c']]
print(a[0]) #1
print(a[-1]) #['a','b','c']
print(a[3]) #a['a','b','c']
print(a[-1][0]) #'a'
print(a[1:-2]) #[2,3]

🔑 풀이

import sys

s = sys.stdin.readline().rstrip()

# for문을 통해 문자열을 비교(브루트포스)
for i in range(len(s)):

    # i번째~끝까지 문자열 & i번째~끝까지를 역순으로 확인한 문자열을 비교
    # 같을 경우(팰린드롬 가능성) 문자열 뒤에 i만큼 추가해주면 됨
    if s[i:] == s[i:][::-1]:
        print(len(s) + i)
        break

참고

profile
돌이 되고 싶어요

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN