🗂️ 문제
링크: https://school.programmers.co.kr/learn/courses/30/lessons/42839
💡 접근법
순열을 사용하여 numbers에서 만들 수 있는 모든 경우의 수를 생성하여 set에 저장한다.
이때 중복된 값이 저장될 수 있으므로 set을 사용한다.
모든 경우의 수에 대해 소수인지 판별한다.
👀 배운 코드
from itertools import permutations
def solution(numbers):
answer = 0
def is_prime(n):
if n < 2:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
nums_set = set()
for i in range(1, len(numbers) + 1):
for p in permutations(numbers, i):
nums_set.add(int(''.join(p)))
for n in nums_set:
if is_prime(n):
answer += 1
return answer
🧐 배운 점
- set 자료형
- 초기화: set()
- 값 추가: add()
- 순열 라이브러리
- permutations(numbers, i): iterable한 리스트인 numbers에서 i개를 선택한 모든 경우의 수에 대한 쌍을 튜플 형식으로 반환한다.
🔗 Reference
'Algorithm > Programmers' 카테고리의 다른 글
[완전탐색] 프로그래머스 Lv2. 모음 사전 - Python (0) | 2024.03.24 |
---|---|
[완전탐색] 프로그래머스 Lv2. 피로도 - Python (0) | 2024.03.24 |
[완전탐색] 프로그래머스 Lv2. 카펫 - Python (0) | 2024.03.21 |
[완전탐색] 프로그래머스 Lv1. 모의고사 - Python (0) | 2024.03.19 |
[정렬] 프로그래머스 Lv.2 가장 큰 수 - Python (2) | 2024.03.16 |