온라인저지
[BOJ] 10942번: 팰린드롬?
plzfday
2017. 10. 21. 23:17
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 |