C & C++/BOJ
[백준] 1259번: 팰린드롬수
와금
2021. 2. 19. 16:51
728x90
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