본문 바로가기
온라인저지

[BOJ] 10942번: 팰린드롬?

by plzfday 2017. 10. 21.

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


오랜만입니다...

오늘은 팰린드롬에 대한 문제를 풀어 보려고 합니다.

팰린드롬이란, 위키백과 : 숫자, 단어, 구 같은 시퀀스들이 앞과 뒤가 같아서 반으로 접으면 일치하게 되는 녀석들을 칭합니다.


이 문제는 DP로 푼다고 하는데, 저는 사실 DP를 잘 못하기도 하고 굳이 DP로 풀 필요가 없는 것 같았습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
 
int palin(int start, int finish, int *arr) {
    int mid = (start + finish) / 2;
    for(int i = start, j = finish; i <= mid, j >= mid; i++, j--) {
        if(arr[i] == arr[j]) { 
            // 앞과 끝이 같으면 계속 진행
            continue;
        }
        else
            return 0;
    }
    return 1;
}
int main()
{
    int N, start, finish, arr[2001];
    scanf("%d"&N);
    for(int i = 0; i < N; i++)
        scanf("%d"&arr[i]);
    scanf("%d"&N);
    // 여기까지 입력.
    for(int i = 0; i < N; i++) {
        scanf("%d %d"&start, &finish);
        int tstart = start - 1;
        int tfinish = finish - 1;
 
        printf("%d\n", palin(tstart, tfinish, arr));
    }
    return 0;
}
cs


'온라인저지' 카테고리의 다른 글

[BOJ]2667번: 단지번호붙이기  (0) 2018.01.25
[BOJ] 1002번 : 터렛  (0) 2017.11.16
[BOJ] 1260번: DFS와 BFS  (0) 2017.11.04
[BOJ]14726번: 신용카드 판별  (0) 2017.09.24
[BOJ]2605번: 줄 세우기  (1) 2017.09.03
[BOJ]2309번: 일곱 난쟁이  (0) 2017.09.03

댓글