새소식

알고리즘/DP

[백준 10942] 팰린드롬? (파이썬 풀이)

  • -

[백준 10942] 팰린드롬?

 

start 칸부터 end 칸까지 문자열이 팰린드롬인지 알고싶다면, 가운데 문자열인 [start+1:end-1]이 팰린드롬이고 start 칸에 있는 문자와 end 칸에 있는 문자가 같은지 확인하면 된다.

 

제출코드

import sys input = sys.stdin.readline n = int(input()) arr = list(map(int,input().split())) d = [[0]*n for _ in range(n)] for i in range(n): for start in range(n-i): end = start + i # 문자수 1개 : 시작점과 끝점이 같으므로 팰린드롬 if start == end: d[start][end] = 1 elif arr[start] == arr[end]: # 문자수 2개 : 시작 문자와 끝 문자가 같으면 팰린드롬 if start+1 == end: d[start][end] = 1 # 문자수 3개 이상 : 시작 문자와 끝 문자가 같고, # 시작 문자와 끝 문자를 뺀 가운데 문자열이 팰린드롬이면 팰린드롬 elif d[start+1][end-1] == 1: d[start][end] = 1 m = int(input()) for _ in range(m): s,e = map(int, input().split()) print(d[s-1][e-1])

참고 : https://velog.io/@himi/%EB%B0%B1%EC%A4%80-10942.-%ED%8C%B0%EB%A6%B0%EB%93%9C%EB%A1%AC

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.