https://www.acmicpc.net/problem/1259
1259번: 팰린드롬수
입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.
www.acmicpc.net
풀이 :
1. 앞으로 읽으나 뒤로 읽으나 같아야 하기 때문에 절반까지만 반복문을 돌리면서 비교한다
2. 쉽게 비교하기 위해 문자열로 받는다
3. 반복문을 종료하는 시점은 들어온 값이 0인 경우
#include <iostream>
using namespace std;
int main(){
bool ans;
while(1){
string num;
ans = true;
cin >> num;
if(num.size() == 1 && num[0] == '0'){
return (0);
}
for(int i=0; i<num.size()/2; i++){
if(num[i] != num[num.size()-i-1]){
ans = false;
}
}
(ans ? cout << "yes" : cout << "no");
cout << endl;
}
}
- 값이 일치하는지를 판별하는 bool ans선언
- while문 무한으로 돌리면서 0 나오면 종료
- 절반까지만 for문을 돌리면서 i값과 끝값 비교
- 일치 여부에 따라 값 출력
'PS_Baekjoon' 카테고리의 다른 글
[백준 C++] 10815번 : 숫자 카드 (0) | 2023.02.25 |
---|---|
[백준 C++] 11866번 : 요세푸스 문제 0 (0) | 2023.02.25 |
[백준 C++] 10814번 : 나이순 정렬 (0) | 2023.02.24 |
[백준 C++] 2751번 : 수 정렬하기 2 (0) | 2023.02.24 |
[백준 C++] 1700번 : 멀티탭 스케줄링 (0) | 2023.02.22 |