문제 링크: https://programmers.co.kr/learn/courses/30/lessons/12977
내 풀이:
참고한 풀이:
첫 번째)
두 번째)
Review:
문제는 해결했지만, 만약 입력값이 더 커졌으면 내 풀이는 통과하지 못했을 것 같다. 소수는 1과 자기 자신만 약수를 가진다는 정의를 더욱 쉽게 이용하면 모든 경우를 따질 필요가 없는데, 내 풀이에서는 1부터 입력값까지의 모든 수로 나누고 약수의 개수가 2개인 것을 체크했다.
하지만 이 부분을 2부터 (입력값 - 1)까지 반복을 돌며 나누어 떨어지면 반복을 종료하는 식으로 코드를 짰다면 시간이 좀 더 적게 걸렸을 것 같다.
참고한 풀이의 첫 번째 풀이는 조합(combination)을 구하기 위해 해당 모듈을 import해서 사용했다는 점이 눈에 띄어 가져왔다. 간략한 사용법은 참고를 확인하자.
Idea:
입력값으로 주어진 배열에서 3개의 수를 선택해서 구할 수 있는 모든 합계를 구하고 리스트에 추가한다. 해당 리스트에서 반복문을 돌며 원소를 하나 꺼내고 소수를 판별하고 소수가 맞다면 answer의 값을 1 증가 시킨다. 반복문이 끝나고 소수의 개수(answer)을 리턴한다.
참고:
combinations을 사용하기 위해 모듈을 import를 하고, 문제처럼 리스트에서 3개를 뽑아 만들 수 있는 조합을 구하기 위해 함수에 첫 번째 인수로 '배열'과 두 번째 인수로 '개수'를 입력한다.
'알고리즘 문제 풀이: 파이썬 > Programmers' 카테고리의 다른 글
[프로그래머스] 올바른 괄호 (0) | 2021.06.30 |
---|---|
[프로그래머스] 다음 큰 숫자 (0) | 2021.06.27 |
[프로그래머스] 크레인 인형뽑기 게임 (0) | 2021.06.17 |
[프로그래머스] 로또의 최고 순위와 최저 순위 (0) | 2021.06.16 |
[프로그래머스] k번째 수 (0) | 2021.06.15 |
댓글