BOJ. 1259

Opusdeisong·2022년 12월 24일
0

백준 Class2

목록 보기
8/31


#BOJ1259

팰린드롬수

이 부분은 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;
       //팰린드롬이 아닐때를 모두 지난 후에 맞다는 것을 표현하기 
       //위한 변수들의 향연이었다. 이 부분이 상당히 어려웠다.
   }
       

}
profile
Dorsum curvatum facit informaticum.

0개의 댓글