-
[1259] 팰린드롬수BOJ 2021. 9. 1. 21:41
https://www.acmicpc.net/problem/1259
1259번: 팰린드롬수
입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.
www.acmicpc.net
<문제>
투포인터같은 느낌으로 생각해보자. L를 맨 왼쪽, R을 맨 오른쪽에 위치시키고 항상 L++, R--을 진행한다.
도중에 한번이라도 s[L] != s[R]인 순간이 있다면 팰린드롬이 아니고,
s[L] != s[R]인 순간이 한번도 없으며 L>=R이 되어 탐색이 끝나면, 팰린드롬이라고 판별하면 된다.
<소스코드>
12345678910111213141516171819202122232425262728293031323334#include<stdio.h>#include<string.h>int main(void) {int i, j,key;char s[6] = { 0 };while (1) {scanf("%s", s);if (s[0] == '0')break;key = 0;if (strlen(s) % 2 == 0) {for (i = 0, j = strlen(s) - 1; i < j; i++, j--) {if (s[i] != s[j]) {key = 1;break;}}}else {for (i = 0, j = strlen(s)-1; i != j; i++, j--){if (s[i] != s[j]) {key = 1;break;}}}if (key == 1)printf("no\n");elseprintf("yes\n");}return 0;}cs 'BOJ' 카테고리의 다른 글
[16235] 나무 재테크 (0) 2021.09.01 [5615] 아파트 임대 (0) 2021.09.01 [10942] 팰린드롬? (0) 2021.09.01 [11053] 가장 긴 증가하는 부분 수열 (0) 2021.09.01 [1717] 집합의 표현 (0) 2021.09.01