DINGA DINGA
Published 2021. 2. 19. 16:51
[백준] 1259번: 팰린드롬수 C & C++/BOJ
728x90

www.acmicpc.net/problem/1259

 

1259번: 팰린드롬수

입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.

www.acmicpc.net

 

코드

#include <stdio.h>
#include <string.h>

int is_palindrome(char arr[], int len) {		//팰린드롬수인지 판별하는 함수
	for (int i = 0; i < len / 2; i++)
		if (arr[i] != arr[len - i - 1]) 
			return 0;
	return 1;
}

main() {
	char num[100000];
	while (1) {
		scanf("%s", num);		//문자열로 입력 받음
		if (strlen(num) == 1 && num[0] == '0')		//0 입력시 실행 종료
			break;
		else
			is_palindrome(num, strlen(num)) == 0 ? printf("no\n") : printf("yes\n");
	}
}

 

설명

 

숫자를 문자열로 입력 받고, 입력 받은 숫자가 0이면 실행을 종료한다.

0이 아니라면 is_palindrome 함수를 통해 팰린드롬수인지 판별한다.

for문에서 문자열의 양 끝 숫자부터 차례로 비교하여 숫자가 다르면 팰린드롬수가 아니므로 0을 리턴, 팰린드롬수이면 1을 리턴한다.

이후 리턴값에 따라 팰린드롬수이면 yes, 아니면 no를 출력한다.

728x90