본문 바로가기
Problem Solving/String

[문자열] 10942번: 팰린드롬? / 골드 3

by ggyongi 2021. 6. 16.
반응형

https://www.acmicpc.net/problem/10942

 

10942번: 팰린드롬?

총 M개의 줄에 걸쳐 홍준이의 질문에 대한 명우의 답을 입력으로 주어진 순서에 따라서 출력한다. 팰린드롬인 경우에는 1, 아닌 경우에는 0을 출력한다.

www.acmicpc.net

import sys
n = int(sys.stdin.readline())
nums = list(map(int, sys.stdin.readline().split()))

table = [[0]*n for _ in range(n)]
table[n-1][n-1] = 1

for i in range(n-1):
    table[i][i] = 1
    start = i
    end = i
    while end < n and start >= 0:
        if nums[start] == nums[end]:
            table[start][end] = 1
            start -= 1
            end += 1
        else:
            break

    if nums[i] != nums[i+1]:
        continue

    table[i][i+1] = 1
    start = i
    end = i+1
    while end < n and start >= 0:
        if nums[start] == nums[end]:
            table[start][end] = 1
            start -= 1
            end += 1
        else:
            break

m = int(sys.stdin.readline())
for _ in range(m):
    s, e = map(int, sys.stdin.readline().split())
    print(table[s-1][e-1])

시간 내에 통과하려면 dp로 접근해야 한다. 

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글