백준 1259 - 팰린드롬수

황재진·2024년 3월 9일

백준

목록 보기
20/54
post-thumbnail

숫자를 입력받아 각 자릿수를 구해 배열에 삽입한 후 배열의 양 끝부분을 차례대로 체크해 동일하지 않다면 no, 끝까지 동일하다면 yes를 출력하면 되는 문제입니다.

#include <iostream>

int main()
{
	int n;

	std::cin >> n;

	while (n != 0)
	{
		int len = 0; // 숫자 길이
		int copy_n = n;
		while (copy_n > 0)
		{
			copy_n /= 10;
			len++;
		}

		int* nums = new int[len];
		int nums_top = -1;

		int first_ten = 10;
		for (int i = 1; i < len; i++)
			first_ten *= 10;

		for (int i = 0; i < len; i++) // 자릿수 구하기
		{
			int temp = (n % first_ten / (first_ten / 10));
			first_ten /= 10;

			nums_top++;
			nums[nums_top] = temp;
		}

		bool isTrue = true;
		for (int i = 0; i < len / 2; i++)
		{
			if (nums[i] != nums[nums_top - i])
			{
				isTrue = false;
				break;
			}
		}

		if (isTrue)
			std::cout << "yes\n";
		else
			std::cout << "no\n";

		std::cin >> n;
	}
	return 0;
}
profile
프로그래밍, 쉐이더 등 이것저것 다해보는 게임 개발자입니다

0개의 댓글