문제 링크: https://www.acmicpc.net/problem/1259
팰린드롬수는 뒤에서부터 읽어도 똑같은 수를 말하는데요, 풀이 방법이 여러가지 있겠습니다만 떠올릴 수 있는 방법 중 가장 쉬운건 앞에서부터 한글자씩 체크해보는 겁니다.
길이의 딱 절반만큼만 비교해보면 되겠죠. 숫자의 길이가 홀수일 때 가장 중앙의 수는 뭐가 와도 상관 없으니 결과적으로는 for문에서 i의 범위가 [0, sz/2)가 되면 되겠습니다. i번째 수와 비교할 수는 sz-i-i입니다.
// 1259
#pragma GCC optimize ("Ofast")
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
using namespace std;
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
string num;
while (cin >> num) {
if (num == "0") break;
bool flag = true;
auto sz = num.size();
for (int i = 0; i < sz/2 && flag; ++i) {
if (num[i] != num[sz - i - 1])
flag = false;
}
cout << (flag ? "yes\n" : "no\n");
}
return 0;
}
반응형
'Online Judge > 백준' 카테고리의 다른 글
[백준][C++] 18111: 마인크래프트 (0) | 2020.06.15 |
---|---|
[백준][C++] 2293: 동전 1 (0) | 2020.06.14 |
[백준][C++] 1620: 나는야 포켓몬 마스터 이다솜 (0) | 2020.06.12 |
[백준][C++] 1550: 16진수 (0) | 2020.06.11 |
[백준][C++] 1012: 유기농 배추 (0) | 2020.06.10 |