[프로그래머스/Python] 알고리즘고득점kit-완전탐색-소수찾기

2024. 10. 14. 13:21·코딩테스트/프로그래머스
728x90
반응형

📌 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/42839

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

📌 문제 설명 

 

한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다.

각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요.

# 제한사항

  • numbers는 길이 1 이상 7 이하인 문자열입니다.
  • numbers는 0~9까지 숫자만으로 이루어져 있습니다.
  • "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다.

 

📌 풀이 과정 

  1. itertools의 permutations를 사용해 길이를 달리하면서 조합을 모두 구하기로 했다. 
    • permutations인 이유는, '011'이어도 서로 다른 1로 취급해야 하기 때문이다. 
  2. 그 뒤에 numbers를 한 자리씩 분리시켰다. => list(map(str, numbers))
    • str로 map한 이유는 나중에 join할 때 그게 더 편하기 때문이다. 
  3. 📢 조합된 문자열의 길이를 증가시키면서 permutations를 돌린다. 
    • 길이가 l일 때의 문자열을 tmp에 담는다.
    • tmp의 요소들마다 숫자로 변환시킨다. => n = int(''.join(t)) 
    • 1보다 크고 & 소수인지 확인하고 & answer에 안 담은 숫자일때만 answer.append(n) 실행한다. 
  4. 결국, answer에는 서로 다른 소수들이 저장되어 있다. => len(answer)를 리턴하면 된다. 

 

📌 풀이 코드 

from itertools import *
def prime(n):
    for i in range(2, n):
        if n%i == 0: return False
    return True
def solution(numbers):
    answer = []
    numbers = list(map(str, numbers))
    tmp = []
    for l in range(1, len(numbers)+1):
        tmp = list(permutations(numbers, l))
        for t in tmp: 
            n = int(''.join(t))
            if n > 1 and prime(n) and n not in answer:
                answer.append(n)
                        
    return len(answer)
728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[프로그래머스/Python] 알고리즘고득점Kit-탐욕법(Greedy)-큰수만들기  (0) 2024.10.16
[프로그래머스/Python] 알고리즘고득점Kit-탐욕법(Greedy)-체육복  (2) 2024.10.14
[프로그래머스/Python] 알고리즘고득점Kit - 완전탐색 - 모의고사  (2) 2024.10.14
[프로그래머스/Python] 알고리즘고득점Kit-완전탐색-최소직사각형  (1) 2024.10.14
[프로그래머스/Python] 알고리즘고득점Kit-해시-폰켓몬  (5) 2024.10.13
'코딩테스트/프로그래머스' 카테고리의 다른 글
  • [프로그래머스/Python] 알고리즘고득점Kit-탐욕법(Greedy)-큰수만들기
  • [프로그래머스/Python] 알고리즘고득점Kit-탐욕법(Greedy)-체육복
  • [프로그래머스/Python] 알고리즘고득점Kit - 완전탐색 - 모의고사
  • [프로그래머스/Python] 알고리즘고득점Kit-완전탐색-최소직사각형
heeya16
heeya16
개발 공부 냠냠
  • heeya16
    개발자 희야
    heeya16
  • 전체
    오늘
    어제
    • 분류 전체보기 (105)
      • 코딩테스트 (66)
        • 프로그래머스 (38)
        • SWEA (2)
        • BAEKJOON (26)
      • 알고리즘 (7)
      • 자료구조 (19)
      • 프로젝트 (5)
      • 취업 주르륵 (2)
      • 데이터베이스 (0)
      • IT지식 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    1003
    10448
    10773
    10월
    10진수
    11047
    11399
    11403
    11866
    1449
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
heeya16
[프로그래머스/Python] 알고리즘고득점kit-완전탐색-소수찾기
상단으로

티스토리툴바