이렇게 쉽게 나올날이 또 올까 싶습니다..
2018 섬머 윈터코딩 풀이 모음
📖 점프와 순간이동 문제 확인
✏️ 문제 해결방법
- 3개의 수를 더했을 때 소수인지를 판별하는 문제입니다.
- [1, 2, 3, 4]의 배열에서 (1, 2, 3)을 선택한 경우의 수와 (3, 2, 1)을 선택한 경우의 수는 같은 경우의 수 입니다.
- 왜냐하면 수의 합이 소수인지만 판결할 것이기 때문입니다.
- (0, 1, 2, 3) ~ (3, 4, 5, 6)에서 중복을 허용하지 않는 조합의 경우의 수를 출력은 for문을 이용하면 다음과 같이 할 수 있습니다.
for i in range(0, N):
for j in range(i+1, N):
for k in range(j+1, N):
for l in range(k+1, N):
print(i, j, k, l)
- 본 문제는 itertools의 combinations으로도 풀 수 있지만 3중 for를 이용해서 해결하였습니다.
⭕ 최종 풀이
def isPrime(num):
if num == 1:
return False
elif num == 2:
return True
else:
for i in range(2, num):
if num % i == 0:
return False
return True
def solution(nums):
answer = 0
N = len(nums)
for i in range(0, N):
for j in range(i + 1, N):
for k in range(j + 1, N):
total_num = nums[i] + nums[j] + nums[k]
if isPrime(total_num):
answer += 1
return answer
'Computer Science > Problem Solving' 카테고리의 다른 글
[프로그래머스] 영어 끝말잇기 / 2018 섬머 윈터코딩 / 파이썬 (0) | 2020.05.05 |
---|---|
[프로그래머스] 스킬 트리 / 2018 섬머 윈터코딩 / 파이썬 (0) | 2020.05.05 |
2018 카카오 블라인드 필기시험 정답 및 해설 (5) | 2020.04.30 |
[프로그래머스] 징검다리 건너기 - 2019 카카오 겨울 인턴 코딩테스트 / 파이썬 (9) | 2020.04.27 |
[프로그래머스] 🙅♂ 불량사용자 - 2019 카카오 겨울 인턴 코딩테스트 / 파이썬 (2) | 2020.04.24 |