이 부분은 1 학기 중간고사에 C언어로 구현하는 것이 나왔던 기억이 있다. 정확히 동일한 문제여서 크게 어려울것 같지는 않아서 빠르게 코드만 쓰고 넘어가 보려고 한다. 막상 짜려니깐 근데 생각보다 어려웠다. 우선 끝자리를 찾는 것은 익숙하지만 앞 자리를 찾는 것이 자리수가 확정나 있지가 않으니깐 상당히 까다로웠고, 그렇다고 모두 배열에 저장해놓고 비교하자니 몇자린지를 결국 비교해야 했다. 파이썬이었으면 그냥 문자열로 고쳐 버리고 싹다 문자열 인덱싱을 이용해서 비교했을 거 같은데 그런 위대한 기능은 시플플에 없기 때문에 자리수를 분류하고 어레이에 싹다 집어넣기로 했다. 그게 우선 쉬워 보였다. 지금 막 다 풀었는데,,, 이게 우선 생각보다 인덱싱을 해줄 친구들을 제어하기가 어려웠다. 중간중간 오류가 많이 나와서 코드가 좀 조잡하다... 최대한 주석을 이거는 달아 볼까 한다. 그래도 다행히 한 번에 맞췄다..
# include "iostream"
using namespace std;
int main(void){
while (true){
int N, truth = 0;
cin >> N;
if (N == 0){
break;
}
int arr[6], len = 0;
while (N > 0){
arr[len] = N % 10;
len ++;
N = N / 10;
}
// 배열에 전부 넣어주기 위해서 이 과정을 거쳤다.
len --;
for(int i = 0; i <= len / 2; i++){
if (arr[i] != arr[len - i]){
cout << "no" << endl;
break;
}// 솔직히 이건 쉽다 맞는걸 얘기하는게 어렵지,,,
truth ++;
}
if (truth == len / 2 + 1) cout << "yes" << endl;
//팰린드롬이 아닐때를 모두 지난 후에 맞다는 것을 표현하기
//위한 변수들의 향연이었다. 이 부분이 상당히 어려웠다.
}
}