10988.
https://www.acmicpc.net/problem/10988
10988번: 팰린드롬인지 확인하기
첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.
www.acmicpc.net
![](https://blog.kakaocdn.net/dn/meTJk/btsFodMxBuX/uVHlGyiBksFKcY9kJuF420/img.png)
[풀이]
#include <bits/stdc++.h>
using namespace std;
string input;
int flag;
int main(){
ios::sync_with_stdio(0); cin.tie(0);
cin >> input;
for (int i=0; i<input.size()/2; i++){
if (input[i] != input[input.size()-1-i]) flag++;
}
if (flag) cout << 0;
else cout << 1;
}
위는 문자열을 중간을 기준으로 하나씩 비교해가며 팰린드롬인지 비교하는 코드인데,
이는 다소 C언어스러운 코드이다.
다음은 C++의 편의성을 최대로 활용한 코드이다.
C++에서는 문자열을 대입 연산자로 쉽게 복사할 수 있고 문자열을 비교연산자로 쉽게 비교할 수 있다.
원본과 reverse()한 문자열을 비교하는 방법으로 해결할 수 있다.
#include <bits/stdc++.h>
using namespace std;
string input;
string rev;
int main(){
ios::sync_with_stdio(0); cin.tie(0);
cin >> input;
rev = input;
reverse(rev.begin(), rev.end());
if (input == rev) cout << 1;
else cout << 0;
}
'PS' 카테고리의 다른 글
BOJ - 9996. 한국이 그리울 땐 서버에 접속하지 (C++) (0) | 2024.03.07 |
---|---|
BOJ - 3273. 두 수의 합 (C++) (0) | 2024.03.07 |
BOJ - 10804. 카드 역배치 (C++) (0) | 2024.02.28 |
BOJ - 2309. 일곱 난쟁이 (C++) (0) | 2024.02.26 |
[코드업] c++ 100제 (1051 - 1070) (0) | 2024.01.31 |