백준 문제풀이

1259 번 : 팰린드롬수

하다블 2022. 5. 12. 18:20
반응형

문제는 다음과 같습니다.

https://www.acmicpc.net/problem/1259

 

1259번: 팰린드롬수

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

www.acmicpc.net

 

풀이 코드는 다음과 같습니다.

 

#include <iostream>
#include <string>
using namespace std;

int main(void) {
	while(1)
	{
		string s;
		cin>>s;
		if(s=="0")
		{
			break;
		
		}
		else
		{
			bool check{true};
			for(int i{0};i<s.size()/2;i++)
			{
				if(s[i]!=s[s.size()-1-i])
				{
					check=false;
					break;
				}
			}
			if(check)
			{
				cout<<"yes"<<endl;
			}
			else
			{
				cout<<"no"<<endl;
			}
		}
	}
	return 0;
}

0을 입력받을 때 까지 입력받는 방법은 while을 무한루프를 걸어 0을 입력받을 때만 break로 무한루프를 나올 수 있도록 하였습니다.

또한 숫자를 int 나 long long 형으로 받지 않고 string으로 받았는데 이는 문자열로 받아 길이를 바로 사용하고 각각의 자리를 비교해야하기 때문에 문자열로 받는 것이 더 편하다고 생각하여 string을 사용하였습니다.

string을 사용하면 어렵지 않게 해결할 수 있는 문제라고 생각합니다.

 

반응형