본문 바로가기
Develop/백준 (Cpp)

[백준] 10174번 : 팰린드롬 (C++)

by Tarra 2023. 2. 7.

10174번 : 팰린드롬


문제 )

팰린드롬은 앞으로 읽으나 뒤로 읽으나 똑같은 단어나 숫자들을 말한다. 일반적으로 대소문자를 구분하지 않지만, 공백은 구분한다.

다음은 팰린드롬의 예시이다.

  • Anna
  • Harrah
  • Arora
  • Nat tan
  • 9998999
  • 123 321
  • $$$&&$$$

모든 라인에 대해 팰린드롬인지 아닌지를 구분하는 프로그램을 작성하시오.

 

 

입력 :

첫째 줄에 테스트 케이스의 개수 n이 주어진다.

각 테스트 케이스는 한 줄의 텍스트로 이루어져있으며, 비어있는 줄은 없다.

 

 

 

출력 :

각 테스트 케이스에 대해 정답을 출력한다.

팰린드롬일 경우 "Yes"를 출력하고, 그렇지 않을 경우 "No"를 출력한다.

 

 

 

 

 

 

풀이)

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
#include <iostream>
#include <string>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int n;
    cin >> n;
    cin.ignore();
 
    for (int i = 0; i < n; i++) {
        string word;
        getline(cin, word);
 
        // 소문자로 변환
        transform(word.begin(), word.end(), word.begin(), ::tolower);
 
 
        // 문장의 반까지 팰린드롬 확인
        int word_len = word.length();
        bool flag = 1;
        for (int j = 0; j < word_len / 2; j++) {
            if (word[j] != word[word_len - j - 1]) {
                flag = 0;
            }
        }
 
        if (flag) {
            cout << "Yes\n";
        }
        else {
            cout << "No\n";
        }
    }
 
 
    return 0;
}
 
cs

출처 : https://www.acmicpc.net/problem/10174 

 

10174번: 팰린드롬

팰린드롬은 앞으로 읽으나 뒤로 읽으나 똑같은 단어나 숫자들을 말한다. 일반적으로 대소문자를 구분하지 않지만, 공백은 구분한다. 다음은 팰린드롬의 예시이다. Anna Harrah Arora Nat tan 9998999 123

www.acmicpc.net