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 |
댓글