๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœจ Algorithm

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

by nitronium102 2021. 8. 30.

๋ฌธ์ œ

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

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

์ž…๋ ฅ

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

์ถœ๋ ฅ

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

ํ’€์ด

string์œผ๋กœ ๋ฐ”๊พผ ํ›„ algorithm ํ—ค๋”์˜ reverse ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํžˆ ํ’€์—ˆ๋‹ค. 

// ๋ฐฑ์ค€ ํŒฐ๋ฆฐ๋“œ๋กฌ์ˆ˜
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

void pelindrom(string num){
  string revNum = num;
  reverse(revNum.begin(), revNum.end());
  if (num == revNum)
    cout << "yes" << "\n";
  else
    cout << "no" << "\n";
}

int main(){
  string num;
  while(1){
  	cin >> num;
    if (num == '0')
    	break;
    pelindrom(num);
  }
}

 

reverse ๋Œ€์‹  size๋ฅผ ์ด์šฉํ•ด์„œ ํ’€ ์ˆ˜๋„ ์žˆ๋‹ค.

#include <iostream>
#include <string>
using namespace std;
int main() {
    string num;
    while (1) {
        bool flag = true;
        cin >> num;
        if (num == "0") break;
        for (int i = 0; i < num.size() / 2; i++) {
            if (num[i] != num[num.size() - 1 - i]) {
                cout << "no" << "\n";
                flag = false;
                break;
            }
        }
        if (!flag) cout << "yes" << "\n";
    }
}

๋Œ“๊ธ€