반응형
한수는 어떤 양의 정수 X의 각 자리가 등차수열을 이루는 수로 정의한다.
입출력 예시를 살펴보면 1은 한수로 인정되고, 110까지의 한수도 99로 인정되는 것을 보면 등차수열을 이루려면 적어도 각 자리의 차이가 2번은 등장해야 입증이 가능하기 때문에 두자리수까지는 모두 한수로 인정이 된다. 그리고 마지막 1000은 한수가 되지 않기 때문에 100~999 까지의 수만 사용하여 한수인지 입증하면 되는 문제이다.
#include <iostream>
using namespace std;
bool HanNumber(int num){
if(num == 1000)
return false;
int sub1, sub2;
sub1 = num % 10;
num /= 10;
sub1 -= num % 10;
sub2 = num % 10;
num /= 10;
sub2 -= num % 10;
if(sub1 != sub2)
return false;
return true;
}
int main(){
int N;
cin >> N;
int count = 0;
for(int i = 1; i <= N; i++){
bool checkHanNum = false;
if(i < 100)
count++;
else{
checkHanNum = HanNumber(i);
if(checkHanNum == true)
count++;
}
}
cout << count;
return 0;
}
반응형
'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
백준 2675 문자열 반복 (0) | 2021.01.28 |
---|---|
백준 10809 알파벳 찾기 (0) | 2021.01.28 |
백준 10773 스택 (0) | 2021.01.27 |
백준 4673 셀프 넘버 (0) | 2021.01.27 |
백준 1712 손익분기점 (0) | 2021.01.24 |