https://school.programmers.co.kr/learn/courses/30/lessons/42839?language=python3
문제 접근
- 일단 모든 만들 수 있는 숫자를 생성해야 함 -> 순열
- 소수 판별하는 함수를 만들어야함
Java로 구현하려 했으나..
자바에서 순열을 연산해 주는 라이브러리가 없는 것 같아서
위처럼 백트래킹 구현을 해주어야 하는데... 물론 하면 좋지만 라이브러리를 갖다 쓰면 되는 파이썬이 시간과 코드 길이도 줄이기 너무 좋은 것 같아요
파이썬이 코딩테스트 보기에 참 좋은 언어라고 생각이 드네요
코드
from itertools import permutations
def solution(numbers):
answer = 0
nums = [n for n in numbers]
per = []
for i in range(1, len(numbers)+1):
per += list(permutations(nums, i))
per_nums = set(int("".join(num)) for num in per)
def check_prime_number(num):
if num < 2:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
for number in per_nums:
if check_prime_number(number):
answer += 1
return answer
'Development > PS' 카테고리의 다른 글
[DP] 프로그래머스 level 3 N 으로 표현 Python 풀이 (1) | 2023.12.05 |
---|---|
[DFS] 프로그래머스 level 2 타켓넘버 Python 풀이 (0) | 2023.12.05 |
[2022 KAKAO TECH INTERNSHIP] 두 큐 합 같게 만들기 Python 풀이 (1) | 2023.11.13 |
[2022 KAKAO TECH INTERNSHIP] 성격 유형 검사하기 Python 풀이 (0) | 2023.11.13 |
[Hash] 프로그래머스 Level 2 전화번호 목록 Python 풀이 (0) | 2023.11.11 |