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" 와 같은 형태로 문자열을 만들어서 반환

 

  • 리스트에 복합 대입 연산자 += : 리스트의 요소를 추가한다.