반응형
● 문제 접근 과정
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
반응형