요구능력 : 소수를 아느냐
코드설명 :
입력받은 수 만큼 for문을 돌려서 1하고 자기자신이 아닌 경우에만 나누기를 실행했다.
1은 소수가 아닌데 1하고 자기자신으로만 나눠지기 때문에 입력받은 수가 1인 경우에는 따로 처리를 해주고,
다른것들은 2부터 자기자신 이전까지 나눴을 때 나누어 떨어지면 소수가 아니기 때문에 isPrimeNumber를 false로 설정해준다.
아래에서 isPrimeNumber가 true이면 소수이기 때문에 count를 1더해주고,
for문내에서 다음번수를 돌릴때 기본값이 false이면 count가 안세어지니까 true로 초기화를 해준다.
후기 : 실버4티어 문제치곤 쉽고 빠르게 푼편인것같다.
let N = Int(readLine()!)!
var count = 0
var isPrimeNumber = true
var arr = readLine()!.split(separator: " ").map{ Int($0)! }
for i in 0..<arr.count {
if arr[i] == 1 {
isPrimeNumber = false
}else {
for j in 2..<arr[i] {
if arr[i] % j == 0 {
isPrimeNumber = false
}
}
}
if isPrimeNumber == true {
count += 1
}
isPrimeNumber = true
}
print("\(count)")
'Algorithm > 문제풀이_백준' 카테고리의 다른 글
Swift) 백준 11653번 (소인수분해) (0) | 2021.08.07 |
---|---|
Swift) 백준 2581번 (소수) (0) | 2021.08.07 |
Swift) 백준 2839번 (설탕 배달) (0) | 2021.08.06 |
Swift) 백준 2775번 (부녀회장이 될테야) (0) | 2021.08.06 |
Swift) 백준 10250번 (ACM호텔) (0) | 2021.08.06 |
댓글