Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- leetcode
- DispatchQueue
- cleanarchitecture
- 오픈채팅방
- DependencyInjection
- 등굣길
- DiffableDataSource
- rxswift
- swift
- gitflow
- combine
- 프로그래머스
- GCD
- RaceCondition
- MainScheduler.asyncInstance
- SRP
- DynamicMemberLookup
- SwiftUI
- MainScheduler.Instance
- data_structure
- 명품cppProgramming c++
- 코테
- 청년취업사관학교
- IOS
- SeSAC
- MethodSwilzzling
- CoreBluetooth
- MainScheduler
- GIT
- Realm
Archives
- Today
- Total
Do.
2022 KAKAO BLIND RECRUITMENT - k진수에서 소수 개수 구하기, Swift 본문
https://programmers.co.kr/learn/courses/30/lessons/92335
1. 입력받은 숫자를 k진수로 바꾸고, 변환된 정수에서 조건에 맞는 소수를 찾아내는 문제
2. 0P0 조건을 4줄이나 설명되어 있는데, 잘 생각해보면 그냥 0을 기점으로 수를 나눠버리면 된다.
3. 소수를 구하는 가장 빠른 방법을 생각해보면 문제는 쉽게 풀린다.
import Foundation
func solution(_ n:Int, _ k:Int) -> Int {
var result = 0
var primeSet: Set<String> = []
let kradix = String(n, radix: k, uppercase: true)
var stack: String = ""
func stackCheck(_ stack: inout String) {
guard !stack.isEmpty else { return }
if primeSet.contains(stack) {
result += 1
} else if isPrime(stack) {
result += 1
primeSet.insert(stack)
}
stack = ""
}
for number in kradix {
if number != "0" {
stack.write(String(number))
} else {
stackCheck(&stack)
}
}
stackCheck(&stack)
return result
}
func isPrime(_ number: String) -> Bool {
let number = Int(number)!
return number.isPrime
}
extension Int {
var isPrime: Bool {
guard self >= 2 else { return false }
guard self != 2 else { return true }
guard self % 2 != 0 else { return false }
return !stride(from: 3, through: Int(sqrt(Double(self))), by: 2).contains { self % $0 == 0 }
}
}
'Algorithm' 카테고리의 다른 글
프로그래머스 - 등굣길, Cpp (0) | 2022.03.22 |
---|---|
2022 KAKAO BLIND RECRUITMENT - 양궁대회 (0) | 2022.03.18 |
2022 KAKAO BLIND RECRUITMENT - 주차요금 계산하기, Swift (0) | 2022.03.14 |
2019 KAKAO BLIND RECRUITMENT - 오픈 채팅방, Swift (0) | 2022.03.13 |
2020 KAKAO BLIND RECRUITMET - 문자열 압축, Swift (0) | 2022.03.12 |
Comments