반응형

 

● 문제 접근 과정

1. 펠린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다.

2. 문자열을 앞 뒤를 반전시켜 비교할 방안을 생각

3. length()를 이용하여 처음에 구현

4. length()-1을 해줘야 한다는 사실을 코드를 계속 돌려보면서 알아차림 (배열은 0부터 시작하기때문에 -1을 해줘야 함)

5.  for (int i = 0; i < (str.length() - 1); i++) 이걸로 했다가 등호를 붙여야 한다는 사실을 깨달음 (등호를 넣지 않으면 하나를 빼먹게 됨)

6. sw 변수를 통해 최종출력

● 구현

#include <iostream>
#include <string>
using namespace std;

int main() {
  int sw = 0;
  string str;
  getline(cin, str);

  for (int i = 0; i <= (str.length() - 1); i++) {
    if (str[i] == str[str.length() - 1 - i]) {
      sw = 1;
    } else {
      sw = 0;
      cout << sw;
      return 0;
    }
  }

  cout << sw;
  return 0;
}

 

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

 

10988번: 팰린드롬인지 확인하기

첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.

www.acmicpc.net

 

반응형

+ Recent posts