๐Ÿ“ฆ Chango/๐Ÿฃ EDOC

[BOJ][C++] ๋ฐฑ์ค€ 1259๋ฒˆ: ํŒฐ๋ฆฐ๋“œ๋กฌ์ˆ˜

์„ ๋‹ฌ 2021. 9. 6. 09:33
๋ฐ˜์‘ํ˜•

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

 

1259๋ฒˆ: ํŒฐ๋ฆฐ๋“œ๋กฌ์ˆ˜

์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ฐ ์ค„๋งˆ๋‹ค 1 ์ด์ƒ 99999 ์ดํ•˜์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ž…๋ ฅ์˜ ๋งˆ์ง€๋ง‰ ์ค„์—๋Š” 0์ด ์ฃผ์–ด์ง€๋ฉฐ, ์ด ์ค„์€ ๋ฌธ์ œ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค.

www.acmicpc.net

 

๋ฌธ์ œ

์–ด๋–ค ๋‹จ์–ด๋ฅผ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ฝ์–ด๋„ ๋˜‘๊ฐ™๋‹ค๋ฉด ๊ทธ ๋‹จ์–ด๋ฅผ ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋ผ๊ณ  ํ•œ๋‹ค. 'radar', 'sees'๋Š” ํŒฐ๋ฆฐ๋“œ๋กฌ์ด๋‹ค.

์ˆ˜๋„ ํŒฐ๋ฆฐ๋“œ๋กฌ์œผ๋กœ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜์˜ ์ˆซ์ž๋“ค์„ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ฝ์–ด๋„ ๊ฐ™๋‹ค๋ฉด ๊ทธ ์ˆ˜๋Š” ํŒฐ๋ฆฐ๋“œ๋กฌ์ˆ˜๋‹ค. 121, 12421 ๋“ฑ์€ ํŒฐ๋ฆฐ๋“œ๋กฌ์ˆ˜๋‹ค. 123, 1231์€ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ฝ์œผ๋ฉด ๋‹ค๋ฅด๋ฏ€๋กœ ํŒฐ๋ฆฐ๋“œ๋กฌ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋˜ํ•œ 10๋„ ํŒฐ๋ฆฐ๋“œ๋กฌ์ˆ˜๊ฐ€ ์•„๋‹Œ๋ฐ, ์•ž์— ๋ฌด์˜๋ฏธํ•œ 0์ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋ฉด 010์ด ๋˜์–ด ํŒฐ๋ฆฐ๋“œ๋กฌ์ˆ˜๋กœ ์ทจ๊ธ‰ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ํŠน๋ณ„ํžˆ ์ด๋ฒˆ ๋ฌธ์ œ์—์„œ๋Š” ๋ฌด์˜๋ฏธํ•œ 0์ด ์•ž์— ์˜ฌ ์ˆ˜ ์—†๋‹ค๊ณ  ํ•˜์ž.

์ž…๋ ฅ

์ž…๋ ฅ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ฐ ์ค„๋งˆ๋‹ค 1 ์ด์ƒ 99999 ์ดํ•˜์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ž…๋ ฅ์˜ ๋งˆ์ง€๋ง‰ ์ค„์—๋Š” 0์ด ์ฃผ์–ด์ง€๋ฉฐ, ์ด ์ค„์€ ๋ฌธ์ œ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค.

์ถœ๋ ฅ

๊ฐ ์ค„๋งˆ๋‹ค ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ ํŒฐ๋ฆฐ๋“œ๋กฌ์ˆ˜๋ฉด 'yes', ์•„๋‹ˆ๋ฉด 'no'๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

#include <iostream>
#include <vector>

using namespace std;

bool Palindrome (int n) {
    int tmp = 0, divisor = 10;
    vector<int> v;
    
    //๊ฐ ์ž๋ฆฌ์ˆ˜ ๋ฒกํ„ฐ์— ๋„ฃ๊ธฐ
    while(true){
        tmp = n % divisor;
        if(tmp == n){
            v.push_back(tmp / (divisor/10));
            break;
        }
        v.push_back(tmp / (divisor/10));
        divisor *= 10;
    }
        
    //ํ•ด๋‹น ๋ฒกํ„ฐ์˜ i๋ฒˆ์งธ ์ˆซ์ž์™€ ๋งˆ์ง€๋ง‰์—์„œ i๋ฒˆ์งธ ์ˆซ์ž๊ฐ€ ๋‹ค๋ฅด๋ฉด false
    for(int i=0; i<v.size(); i++){
        if(v[i] != v[v.size()-1-i])
            return false;
    }
    
    //๋‹ค ๊ฐ™์œผ๋ฉด true
    return true;
}

int main() {
    while(true){
        int n;
        cin >> n;
        
        if(n==0){
            break;
        }
        else if(Palindrome(n)){
            cout << "yes\n";
        }
        else{
            cout << "no\n";
        }
    }
    return 0;
}
๋ฐ˜์‘ํ˜•