백준 - 소수&팰린드롬 (1747)

Seoyoung Lee·2023년 2월 1일
0

알고리즘

목록 보기
36/104
post-thumbnail
import Foundation

let N = Int(readLine()!)!
var numbers = Array(0...1004000)
(numbers[0], numbers[1]) = (0, 0)

// 소수 찾기
for number in stride(from: 2, through: Int(Double(numbers.count-1).squareRoot()), by: 1) {
    if number == 0 {
        continue
    }
    for index in stride(from: number + number, to: numbers.count, by: number) {
        numbers[index] = 0
    }
}

// 소수이면서 팰린드롬인 수 찾기
for i in N..<numbers.count {
    if numbers[i] == 0 {
        continue
    }
    
    let now = String(numbers[i])
    if now == String(now.reversed()) {
        print(now)
        break
    }
}
  • N이 최대값(1,000,000)일 때의 정답이 포함된 적절한 범위를 고른 후 그 범위 안에 있는 소수들을 찾는다.
  • N부터 배열의 끝까지 순회하며 소수이면서 팰린드롬인 수를 찾는다.
profile
나의 내일은 파래 🐳

0개의 댓글