[프로그래머스 | Lv.1] 소수 찾기

2024. 3. 27. 20:19·Data structure & Algorithm/프로그래머스

 

문제 설명

 

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수,

solution을 만들어 보세요.

 

소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
(1
은 소수가 아닙니다.)

 

 

제한 사항

 

n은 2이상 1000000이하의 자연수입니다.

 

 

입출력 예

 

n result
10 4
5 3

 

입출력 예 설명

 

입출력 예 #1
1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환

 

입출력 예 #2
1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환

 

 

 

나의 풀이

import Foundation

func solution(_ n:Int) -> Int {
    if n == 2 { return 1 }
    
    var nArray = Array(repeating: true, count: n+1)
    
    for i in 2...Int(sqrt(Double(n))) {
        if nArray[i] == true {
            var j = 2
            
            while i * j <= n {
                nArray[i * j] = false
                j += 1
            }
        }
    }
    
    return nArray.filter { $0 == true }.count - 2
}

 

 

 

'Data structure & Algorithm > 프로그래머스' 카테고리의 다른 글

[프로그래머스 | Lv.1] 실패율  (0) 2024.03.28
[프로그래머스 | Lv.1] 덧칠하기  (0) 2024.03.28
[프로그래머스 | Lv.1] 소수 만들기  (0) 2024.03.27
[프로그래머스 | Lv.1] 과일 장수  (0) 2024.03.27
[프로그래머스 | Lv.1] 기사단원의 무기  (2) 2024.03.26
'Data structure & Algorithm/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 | Lv.1] 실패율
  • [프로그래머스 | Lv.1] 덧칠하기
  • [프로그래머스 | Lv.1] 소수 만들기
  • [프로그래머스 | Lv.1] 과일 장수
ohhoooo
ohhoooo
  • ohhoooo
    ohhoooo
    ohhoooo
  • 전체
    오늘
    어제
    • 전체 글 (84)
      • iOS (1)
      • Swift (1)
      • Data structure & Algorithm (67)
        • 프로그래머스 (67)
      • 기타 (15)
        • TIL (2)
        • Android (13)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
ohhoooo
[프로그래머스 | Lv.1] 소수 찾기
상단으로

티스토리툴바