브루트포스

[백준] 1065. 한수 풀이

hch06 2025. 2. 2. 16:38

https://www.acmicpc.net/problem/1065

 

문제에서는 어느 한 정수의 각 자리가 등차수열을 이루면 그 값을 한수라고 설명한다.

 

일의 자리는 모두 한수이므로 cnt에 그 갯수만큼 저장하고 시작한다.
100부터 n까지의 숫자를 반복문으로 확인하면서 한수인지 확인한다.
(십의자리 - 일의자리)가 (백의자리 - 십의자리)와 같은지 검사하여 한수인지 판단한다.
같으면 한수고 아니면 한수가 아니다.

 


C

더보기
#include <stdio.h>

int isHansu(int v){
    if((v/10)%10 - v%10 == v/100 - (v/10)%10) return 1;
    else return 0;
}

int main() {
    int n; scanf("%d", &n);
    int cnt = (n < 100) ? n : 99;

    for(int i = 100; i <= n; i++){
        if(isHansu(i)) cnt++;
    }
    printf("%d", cnt);
}

Python

더보기
def isHansu(v):
    if (v//10)%10 - v%10 == v//100 - (v//10)%10: return 1
    else: return 0

n = int(input())
if n < 100: print(n)
else:
    cnt = 0
    for i in range(100, n+1):
        if isHansu(i): cnt += 1
    print(cnt + 99)