소수 찾기

2021. 5. 1. 16:58·코딩/프로그래머스 lv2

문제 설명

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

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

제한사항

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

입출력 예

 

 

입출력 예 설명

예제 #1
[1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다.

예제 #2
[0, 1, 1]으로는 소수 [11, 101]를 만들 수 있습니다.

  • 11과 011은 같은 숫자로 취급합니다.

 

 

 

import itertools
def solution(numbers):
    a=[]
    l_num = list(numbers)

    d=[]

    for i in range(1,len(l_num)+1):
        p = itertools.permutations(l_num, i)
        a.append(list(p))

    for i in range(len(a)):
        for j in range(len(a[i])):
            c = ''
            for k in range(len(a[i][j])):
                c += a[i][j][k]
            d.append(c)
    num = list(map(int,list(d)))
    num1 = list(set(num))

    if 0 in num1:
        num1.remove(0)
    if 1 in num1:
        num1.remove(1)
    num2=list(num1)
    for i in num1:
        if i >2:
            for j in range(2,i//2+1):
                if i % j ==0 :
                    num2.remove(i)
                    break
        elif i ==2:
            continue

    print(num2)
    answer = len(num2)

    return answer

numbers = "114"

print(solution(numbers))

 

1. 이코드에 사용한것 itertools 에서 순열을 택한다

2. 나온 수를 배열로 만들고 문자열로 합을 구한다.

3. 중복을 제거해준다.

4. 그다음이 이제 핵심이다. 소수구하기

5. 원래 있던 배열에 깊은복사 얕은 복사 개념을 이번에 알게되었다.

 

hcr3066.tistory.com/74

 

(python) 리스트3 - 리스트 복사하기, 리스트와 함수, 리스트 함축, 2차원 리스트

파이썬에서 리스트 변수는 리스트 객체를 직접 저장하고 있지 않다. 리스트 자체는 다른 곳에 저장되고 리스트의 참조값(reference)만 변수에 저장된다. 참조값은 메모리에서 리스트 객체의 위치

hcr3066.tistory.com

6. 이걸 사용해서 소수가 아닌것을 지워버린다.

 

반응형

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

[프로그래머스] 문자열 압축 - python  (0) 2021.05.02
올바른 괄호  (0) 2021.05.01
다음 큰 숫자  (0) 2021.04.30
다리를 지나는 트럭  (0) 2021.04.29
구명보트  (0) 2021.04.28
'코딩/프로그래머스 lv2' 카테고리의 다른 글
  • [프로그래머스] 문자열 압축 - python
  • 올바른 괄호
  • 다음 큰 숫자
  • 다리를 지나는 트럭
코딩 코딩 코오딩
코딩 코딩 코오딩
  • 코딩 코딩 코오딩
    코딩하는 누누
    코딩 코딩 코오딩
  • 전체
    오늘
    어제
    • 분류 전체보기 (491)
      • 생산성 (2)
        • 인텔리제이 (2)
      • 프로젝트 기록 (14)
        • git (2)
        • spring (3)
        • TestCode (2)
        • spring security (3)
        • 기타 (2)
        • MySQL (0)
        • Cloud (2)
      • 회고 (4)
      • Spring (6)
      • JPA (0)
      • DB (4)
        • MySql (2)
        • Redis (1)
      • Java (7)
        • JSP (1)
      • 잡담 (1)
      • CS (30)
        • 컴퓨팅 사고 (0)
        • 배열 (4)
        • 알고리즘 (8)
        • 메모리 (7)
        • 자료구조 (9)
        • 암호학 (2)
      • opencv (14)
      • AI (56)
        • 머신러닝 (2)
        • 딥러닝 (7)
        • tensorflow (3)
        • 머신러닝(딥러닝) 정리 (21)
        • 강화학습 (7)
        • 논문 읽기 (1)
        • 잡동사니 (1)
        • python AI (13)
        • 선형대수 (1)
        • 확률론 (0)
      • 알고리즘 공부 (177)
        • 그래프 이론 (0)
        • 다익스트라 (4)
        • 위상정렬 (3)
        • 신장트리-크루스칼 알고리즘 (4)
        • 플로이드 워셜 (3)
        • 이진탐색 (9)
        • 백트래킹 (11)
        • 부르드포스 (9)
        • 다이나믹 프로그래밍 (20)
        • BFS & DFS (24)
        • 그리디 (6)
        • 구현 (15)
        • 정렬 (3)
        • 기타 (62)
        • 수학? (1)
      • 코딩 (173)
        • 파이썬(python) (15)
        • c언어 (13)
        • 프로그래머스 lv1 (46)
        • 프로그래머스 lv2 (41)
        • 백준 - c++ (49)
        • Softeer (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    선택정렬
    n진법 변환
    코딩테스트
    백준
    인접리스트
    스택
    코딩
    왜곡보정
    c언어
    코딩기초스킬
    BFS
    알고리즘
    순차 탐색
    프로그래머스
    그리디
    DFS
    코딩기초
    삽입 정렬
    인접행렬
    C언어 기초
    에라토슽네스의 체
    캘리브레이션
    자료구조
    코딩문제
    다이나믹 프로그래밍
    이미지처리
    정렬
    큐
    소수찾기
    if문
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩 코딩 코오딩
소수 찾기
상단으로

티스토리툴바