문제
https://programmers.co.kr/learn/courses/30/lessons/12977
코딩테스트 연습 - 소수 만들기
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때
programmers.co.kr
풀이
def solution(nums):
from itertools import combinations as cb
answer = 0
for a in cb(nums, 3):
cand = sum(a)
for j in range(2, int(cand**0.5)+1):
if cand%j==0:
break
else:
answer += 1
return answer
- 문제 자체는 정말 쉽지만, 복습하다가 신기한 파이썬 문법을 봐서 기록을 위해 작성한다.
- for-else문을 사용하면 break 등으로 for문이 끊기지 않았을 때 else 구문을 수행한다.
- 파이썬은 정말 신기한 언어이다...
'💻 CS > 알고리즘 연습' 카테고리의 다른 글
[알고리즘 연습] 시저 암호 (프로그래머스 lv1, 스위프트) (0) | 2022.02.02 |
---|---|
[알고리즘 연습] 신규 아이디 추천 (프로그래머스 lv1, 스위프트) (0) | 2022.01.22 |
[알고리즘 연습] 길찾기 게임 (프로그래머스 lv3, 파이썬) (0) | 2021.07.12 |
[알고리즘 연습] 섬 연결하기 (프로그래머스 lv3, 파이썬) (0) | 2021.07.10 |
[알고리즘 연습] 타겟 넘버 (프로그래머스 lv2, 파이썬) (0) | 2021.06.10 |