본문 바로가기
프로그래머스/Python

[프로그래머스] 소수 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 7. 25.
728x90
반응형

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제 설명

2. 풀이과정

  1. 3개의 수를 더하여 소수인지 판별하기 위해 3중 반복문을 사용한다. 첫 번째 반복문은 처음부터 수가 3개 남을 때까지 인덱스를 사용할 수 있고 for i in range(len(nums) - 2)
  2. 두 번째 반복문은 첫 번째 반복문의 다음 수부터 수가 2개 남을 때까지 인덱스를 사용할 수 있고 for j in range(i + 1, len(nums) - 1)
  3. 세 번째 반복문은 두 번째 반복문의 다음 수부터 수가 마지막 수까지 인덱스를 사용할 수 있다. for k in range(j + 1, len(nums))
  4. 변수를 생성하고 3개의 수를 더하여 저장한다. result = nums[i] + nums[j] + nums[k]
  5. 소수의 개수에 1을 더한다. answer += 1
  6. 2부터 해당 수 전까지 반복하여 for l in range(2, result)
  7. 만약 해당 수가 나누어 떨어지면 if (result % l == 0)
  8. 소수가 아니므로 소수의 개수에서 1을 뺀다. answer -= 1
  9. 소수가 아닌 것으로 판별되었으므로 판별을 종료한다. break
반응형

3. 소스코드

def solution(nums):
    answer = 0

    for i in range(len(nums) - 2):
        for j in range(i + 1, len(nums) - 1):
            for k in range(j + 1, len(nums)):
                result = nums[i] + nums[j] + nums[k]
                answer += 1
                
                for l in range(2, result):
                    if (result % l == 0):
                        answer -= 1
                        break

    return answer
728x90
반응형