[프로그래머스] 코딩테스트 고득점 Kit/완전탐색
[Level 2] 소수 찾기(permutations)
yyndevv
2023. 4. 30. 23:46
from itertools import permutations
def solution(numbers):
answer = []
nums = [n for n in numbers]
per = []
for i in range(1, len(numbers)+1):
per += list(permutations(nums, i))
new_nums = [int(''.join(p)) for p in per]
for n in new_nums:
if n < 2:
continue
check = True
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
check = False
break
if check:
answer.append(n)
return len(set(answer))
- permutation 순열: 몇 개를 골라 순서를 고려해 나열한 경우의 수 (A, B) != (B, A)
- combination 조합: 몇 개를 골라 순서를 고려하지 않고 나열한 경우의 수 (A, B) == (B, A)
- join 함수 '구분자'.join(리스트): 매개변수로 들어온 리스트에 있는 요소 하나하나를 합쳐서 하나의 문자열로 바꾸어 반환하는 함수
- '_'.join(['a', 'b', 'c']) 라 하면 "a_b_c" 와 같은 형태로 문자열을 만들어서 반환
- 리스트에 복합 대입 연산자 += : 리스트의 요소를 추가한다.