준코딩

[Swift] 백준 1065번 문제 한수 본문

알고리즘/Swift 백준 문제풀이

[Swift] 백준 1065번 문제 한수

Ljunhyeob - App Dev 2023. 1. 7. 15:23

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

 

1065번: 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나

www.acmicpc.net

https://github.com/Ljunhyeob/baekjoon1065

 

GitHub - Ljunhyeob/baekjoon1065: 백준 - 1065

백준 - 1065. Contribute to Ljunhyeob/baekjoon1065 development by creating an account on GitHub.

github.com

//
//  main.swift
//  baekjoon1065
//
//  Created by 이준협 on 2023/01/06.
//

import Foundation

let N = Int(readLine()!)!
var count = 0

for i in 1...N{
    if hanSu(i) {
        count = count + 1
    }
}
print(count)

func hanSu(_ number: Int) -> Bool {
    
    if number < 10 {
        return true
    }

    var num = number
    let d = num%10 - (num%100)/10 // 등차
    var n = num%10                // 1의 자리 수
    num /= 10

    while num > 0 {
        if d != n - num%10 {
            return false
        }

        n = num%10
        num /= 10
    }

    return true

}
Comments