https://www.acmicpc.net/problem/10988
입력받은 단어가 앞으로 읽을 때와 거꾸로 읽을 때 똑같은지 판별하는 문제이다.
처음 코드 짤 땐 for문을 통해 단어 스펠링 하나하나 살펴봤는데 굳이 그럴 필요없이 reverse를 써서 뒤집었을 때 두 단어가 똑같은지 확인하면 끝이다.
처음 코드
#include <iostream>
#include <algorithm>
#include<string>
using namespace std;
int main() {
string s,temp;
cin >> s;
char p[100];
int flag = 0;
int k = 0;
for (int i = s.length() - 1; i >= 0; i--) {
p[k] = s[i];
k++;
}
for (int i = 0; i < s.length(); i++) {
if (s[i] != p[i]) {
flag = 1;
break;
}
}
if (flag == 1) {
cout << "0";
}
else {
cout << "1";
}
}
수정 후 코드
int main() {
string s,temp;
cin >> s;
temp = s;
reverse(temp.begin(), temp.end());
if (temp == s)cout << 1 << "\n";
else cout << 0 << "\n";