팰린드롬수
https://www.acmicpc.net/problem/1259
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 128 MB | 36878 | 21259 | 18773 | 58.043% |
문제
어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. ‘radar’, ‘sees’는 팰린드롬이다.
수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다.
121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다.
또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만,
특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다.
입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.
출력
각 줄마다 주어진 수가 팰린드롬수면 ‘yes’, 아니면 ‘no’를 출력한다.
예제 입력 1
121 1231 12421 0
예제 출력 1
yes no yes
출처
ICPC > Regionals > South Pacific > South Pacific Region > New Zealand Programming Contest > NZPC 2006 B번
알고리즘 분류

통과된 코드
#include <iostream>
#include <list>
using namespace std;
string answer[2] = { "yes", "no" };
list<string> answerList;
int temp;
int main()
{
string str = "";
while (true) { // 계속 반복
cin >> str;
if (str == "0") break; // 0을 입력 받으면 stop
temp = 0;
for (int i = 0; i < str.length()/2; i++) { // 홀수일 경우 가운데는 의미가 없음
if (str[i] != str[str.length() -1 - i]) { temp = 1; }
}
answerList.push_back(answer[temp]); // 리스트에 답을 넣는다
}
// 리스트를 순회하면서 출력
for (auto it = answerList.begin(); it != answerList.end(); it++) {
cout << *it << "\n";
}
return 0;
}


![백준 2805번 (나무 자르기, C++, BinarySearch) [BAEKJOON]](https://lycos7560.com/wp-content/uploads/2022/10/boj-og-1-2048x1070-1-1024x535.png)
![백준 2609번 (최대공약수와 최소공배수, C++) [BAEKJOON]](https://lycos7560.com/wp-content/uploads/boj-og-1.png)