728x90
입력받은 값 중에 소수가 몇개인지 확인하는 문제이다.
소수의 특성을 구할 수 있는 코드의 로직은 다양하게 적용이 가능할 것 같아서
문제가 자체가 어렵진 않았다.
이 문제를 풀면서 생각한 논리적 흐름은
- 입력받은 값이 1이라면 이는 소수가 아니기 때문에 제외한다.
- 그리고 1을 제외한(2부터) array[i]보다 작은 정수 값들로 array[i]를 나눴을 때 나머지가 0이라면
- 그 값은 자신을 제외한 값으로도 나뉘는 것이기 때문에 소수가 아니다.
- 소수가 아닌 경우 check을 0으로 만들어주어 count에 영향을 주지 않는다.
- 소수인 경우 check이 그대로 1을 유지하기 때문에 count에 +1 해준다.
* 1978번
let a = Int(readLine()!)!
var count = 0
var check = 1
var array = readLine()!.split(separator: " ").map{Int($0)!}
for i in 0..<array.count {
if array[i] == 1 {
check = 0
}else {
for j in 2..<array[i] {
if array[i] % j == 0 {
check = 0
}
}
}
if check == 1 {
count += 1
}
check = 1
}
print("\(count)")
정리(Today I Learned)
- 없음
'TIL > 알고리즘 공부' 카테고리의 다른 글
백준 11653번 Swift 알고리즘 연습 (0) | 2022.09.01 |
---|---|
백준 2581번 Swift 알고리즘 연습 (0) | 2022.08.30 |
백준 10757번 Swift 알고리즘 연습 (0) | 2022.08.28 |
백준 2839번 Swift 알고리즘 연습 (0) | 2022.08.28 |
백준 2775번 Swift 알고리즘 연습 (0) | 2022.08.26 |