반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- SKT
- 패스트캠퍼스
- 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online
- 패스트캠퍼스후기
- 알버트
- 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지
- 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online.
- AI
- 직장인인강
- R
- 직장인자기계발
- 패캠챌린지
- 한번에끝내는Java/Spring웹개발마스터초격차패키지
- albert
Archives
- Today
- Total
제주 탈출 일지
[python3] 프로그래머스 레벨 2 - 소수 찾기 본문
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42839?language=python3
코딩테스트 연습 - 소수 찾기
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이
programmers.co.kr
# 최종 답안
import itertools
def find_decimal(number):
if number == 1:
return 1
elif number == 0:
return 1
for i in range(2, number):
if number % i == 0:
return 1
return 0
def solution(numbers):
answer = 0
num_list = []
for i in range(len(numbers)):
num_list.append(numbers[i])
a = []
for i in range(1, len(numbers)+1):
a.append(list(itertools.permutations(num_list, i)))
answer_list = []
for i in a:
for j in i:
tmp = ""
for k in j:
tmp += k
if find_decimal(int(tmp)) == 0:
answer_list.append(int(tmp))
answer_set = set(answer_list)
answer_list = list(answer_set)
return len(answer_list)
문자열로된 숫자 numbers를 받고, 1의 자리수로 쪼개서 만들수 있는 소수의 갯수를 세는 문제.
itertools의 permutation을 이용하여 1의 자리로 만들수 있는 모든 가짓수의 순열을 얻음. 이 때 문제는 중복되는 수가 존재함.(0 , 1, 1의 경우 11과 011이 중복, 이외에도 엄청 많다)
그래서 일단 모든 가짓수를 구하고 -> 중복을 없애고 -> 중복 없는 가짓수에 대한 소수 찾기를 수행하면 된다.
(제 코드는 가짓수를 구하고 -> 소수 찾고 -> 중복을 없애는 순, 비효율적임...)
다른 사람의 풀이
1. set을 적극적으로 이용하여 합집합 차집합으로 경우의 수를 없애고 더함.
2. 에라토스 테네스의 채를 이용하여 조금더 효율적으로 코딩함.
728x90
반응형
'코딩 테스트' 카테고리의 다른 글
[python3] 프로그래머스 레벨 2 - 기능개발 (0) | 2021.06.17 |
---|---|
[python3] 프로그래머스 레벨 2 - 카펫 (0) | 2021.06.15 |
[python3] 프로그래머스 레벨 3 - 베스트앨범 (0) | 2021.06.14 |
[Python3] 프로그래머스 레벨 2 - 위장 (0) | 2021.06.07 |
[Python3] 프로그래머스 레벨 2 - 전화번호 목록 (0) | 2021.06.06 |
Comments