코드포스(CodeForce)
Educational Codeforces Round 29 - A. Quasi-palindrome
cepiloth
2018. 8. 17. 18:11
반응형
1. 문제
2. 알고리즘
키워드 - 구현
* panlindrome 이란?
panlindrome(회문)은 거꾸로 읽어도 제대로 읽는 것과 같은 문장이나 낱말이다.
* 문제 이해
문제에서 주어진 사항은 아래와 같다.
131 -> 거꾸로 읽어도 131 임으로 YES
320 -> 거꾸로 읽으면 023 임으로 NO
2010200 -> 0020102 회문이 있음으로 YES
* 문제 접근
전처리 과정으로 0을 제거 하고 진행 한다.
2010200 -> 20102
10 으로 나눠서 나머지가 0 이면 나눗셈을 진행하고 나머지가 존재하면 종료 한다.
3. 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include <stdio.h> #include <iostream> #include <vector> #include <algorithm> #include <functional> #include <string> using namespace std; int main() { int n; cin >> n; int cand = n; //[0 을 제거 한다] for(int i=0; ;i++) { if(cand % 10 == 0) cand /= 10; else break; } string str = to_string(cand);; const int size = str.size(); vector<int> arr(size); for(int i=0; i<size; i++) { arr[i] = cand % 10; cand /= 10; } bool check = false; // 모든 크기를 순회할 필요는 없다 // a[i] == a[배열의 크기 -i -1] for(int i=0; i<size/2; i++) { if(arr[i] != arr[size-i-1]) { check = true; break; } } if(check) { cout << "NO" << endl; } else { cout << "YES" << endl; } return 0; } | cs |
반응형