반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 리스트
- java
- 알고리즘
- 스택
- LV.1
- 코딩 테스트
- 알고리즘 표현
- 알고리즘의 조건 5가지
- 파이썬
- 큐
- 들여쓰기로 표현한 트리
- 프로그래머스
- 트리
- 자바
- 좋은 알고리즘
- 유사코드
- 알고리즘의 조건
- Import
- html
- 태그
- Tree
- Combination
- 자료구조
- list
- itertools
- 유한소수 판별하기
- import itertools
- 코딩테스트
- python
- 과일 장수
Archives
- Today
- Total
인천의 자유인
[Python] 소수 만들기 -프로그래머스(Lv.1) 본문
728x90
반응형


나의 문제 풀이
import itertools
def solution(nums):
a = list(itertools.combinations(nums,3))
answer = 0
for i in a:
i = sum(i)
count = 0
for j in range(2, int(i/2)+1):
if i%j == 0:
break
count +=1
if count == int(i/2)-1:
answer+=1
return answer
먼저 import itertools은 제가 정리한 글이 있으니 잘 모르신다면 보고 오시는 것을 추천드립니다.
https://y01112.tistory.com/87
itertools.combinations(nums,3)을 하면 중복되지 않게 3개를 뽑을 수 있습니다.
이것을 한 뒤에는 바로 리스트 a에 있는 각 요소의 합이 소수인지를 판별하고 그것이 맞다면 answer에 1씩 쌓이게 됨을 알 수 있습니다.
i%j가 0일 경우 break를 하는 이유는 소수는 1과 자기 자신을 제외한 모든 숫자들은 나눠지지 않는 것이 당연하기 때문입니다. 나누어지지 않으면 count를 1씩 증가시킵니다. 이렇게 해서 한 요소가 끝까지 한번도 나누어 지지 않았을 경우(소수일 경우) count는 int(i/2)-1이 쌓이게 되는데 그러면 answer를 1씩 증가시키는 것이죠
최종적으로 다 구할 경우 더해진 answer을 return하면 프로그램은 종료가 됩니다.
728x90
반응형
'Python > Python코딩테스트' 카테고리의 다른 글
[Python] 소수 찾기 - 프로그래머스(Lv.1) (0) | 2024.07.25 |
---|---|
[Python] 과일 장수 - 프로그래머스(Lv.1) (0) | 2024.07.20 |
[Python] 모의고사 - 프로그래머스(Lv.1) (0) | 2024.07.16 |
[Python] 기사단원의 무기 - 프로그래머스(Lv.1) (0) | 2024.07.13 |
[Python] 2016년 - 프로그래머스(lv.1) (0) | 2024.07.11 |