반응형

🗓️ 문제 설명

  • 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하세요.
  • 제한 사항
    • 2 ≤ n ≤ 1000000
  • 입출력 예시
n result
10 4
5 3

 

💻 코드

최종 코드

  • 수정 사항
    >> 큰 자연수에 대해 런타임 에러가 발생하기 때문에 소수 판별을 위해 제곱근을 사용

 

코드 풀이

 

다른 사람 풀이

더보기

풀이 1번('에라토스테네스의 체'를 이용한 풀이방법)

  • 에라토스테네스의 체
    • 먼저 소수를 판별할 범위만큼 배열을 할당하여, 해당하는 값을 넣어주고, 이후에 하나씩 지워가는 방법
      1. 배열을 생성하여 초기화
      2. 2부터 시작해서 특정 수의 배수에 해당하는 수를 모두 지움
        (지울 때, 자기자신은 지우지 않고, 이미 지워진 수는 건너뜀)
      3. 2부터 시작하여 남아있는 수를 모두 출력
  1. 2번줄 : 2부터 주어진 수까지 들어있는 배열을 set로 생성
  2. 4~6번줄 : 2부터 시작해서 특정 수의 배수에 해당하는 수를 모두 지움
  3. 7번줄 : 남아있는 소수의 갯수를 출력

 

⚙️ 시행착오

1차 시도

더보기
  • 큰 자연수에 대해 시간초과
반응형
반응형

🗓️ 문제 설명

  • 주어진 숫자 중 3개의 수를 더했을 때, 소수가 되는 경우의 개수를 구하려고 합니다.
  • 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더합니다.
  • 더한 값이 소수가 되는 경우의 개수를 반환합니다.
  • 제한 사항
    • 3 ≤ nums에 들어있는 숫자의 개수 ≤ 50
    • 1 ≤ nums의 각 원소 ≤ 1000
    • nums에는 중복된 숫자가 들어있지 않습니다.
  • 입출력 예시
nums result
[1, 2, 3, 4] 1
[1, 2, 7, 6, 4] 4

 

💻 코드

최종 코드

 

코드 풀이

 

다른 사람 풀이

더보기

풀이 1번

  1. 4번줄 : combination함수를 이용하여 서로 다른 수를 3개 추출하는 반복문 시행
  2. 5번줄 : 추출한 수를 더해줌
  3. 6번줄 : 2부터 5번줄에서 더한 값까지 돌아가는 반복문 시행
  4. 7번줄 : 만일 약수가 존재하면 탈출하는 조건문 생성
  5. 8번줄 : 6번줄의 반복문이 모두 돌면(약수가 없으면) answer에 1을 더해줌

 

반응형

+ Recent posts