[백준/C++] 1259번 팰린드롬수

2021. 12. 4. 22:44·기타

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

 

1259번: 팰린드롬수

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

www.acmicpc.net

// 코드

#include <bits/stdc++.h>
using namespace std;

int p(int x){ // 10을 x번 곱해서 반환하는 함수
  int res = 1;
  for(int i = 0; i < x; i++) res *= 10;
  return res;
}
int main(void){
  int num, tmp, cnt, res[5];

  while(true)
    {
    cnt = 0;
    cin >> num;
    if(num == 0) break; 
    // 입력이 0일 경우 종료
    tmp = num; 
        while(tmp != 0)
        { // tmp가 0이 아니라면 반복
            res[cnt] = tmp % 10;
            // res[cnt]에 tmp 끝자리 삽입
            tmp = tmp / 10;
            // 끝자리 버리기
            cnt += 1;
            // 1 증가
        }
    for(int i = 1; i <= cnt ; i++) tmp += p(cnt-i)*res[i-1];
    // p함수의 반환 값과 res배열을 곱해서 tmp에 더하기
    if(tmp == num) cout << "yes" << '\n';
    // 펠린드롬수라면 yes
    else cout << "no" << '\n';
    // 아니면 no
    }
  return 0;
 }

// 리뷰

이 문제는 거꾸로 했을때도 같은 수를 찾는것이기 때문에 입력받은 수 끝자리부터 하나씩 배열에 저장하여

해당하는 배열마다 10*x를 곱한다음 tmp에 더하고 입력 값과 비교하여 펠린드롬수를 찾았다.

예 ) 100의자리 수라면 10*2

 

'기타' 카테고리의 다른 글

[백준/C++] 1436 영화감독 숌  (0) 2022.06.23
[백준/C++] 1874번 스택 수열  (0) 2021.12.05
[C++] 여러가지 피라미드 코드 ( 왼쪽 위, 아래 && 오른쪽 위, 아래 )  (2) 2021.12.03
[백준/C++] 5397번 키로거 List  (1) 2021.12.03
[백준/C++] 1158번 요세푸스 문제 List iterator 사용  (0) 2021.12.02
'기타' 카테고리의 다른 글
  • [백준/C++] 1436 영화감독 숌
  • [백준/C++] 1874번 스택 수열
  • [C++] 여러가지 피라미드 코드 ( 왼쪽 위, 아래 && 오른쪽 위, 아래 )
  • [백준/C++] 5397번 키로거 List
heyh0
heyh0
  • heyh0
    doblog
    heyh0
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 2025
      • 2024
      • History
      • 기타
  • 블로그 메뉴

    • GitHub
  • 인기 글

  • 태그

    socket
    테스트
    querydsl
    AOP
    redis
    Spring
    DB
    Algorithm
    jpa
    Til
    회고
    C++
    oauth
    동시성
    프로젝트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
heyh0
[백준/C++] 1259번 팰린드롬수
상단으로

티스토리툴바