문제링크 : https://programmers.co.kr/learn/courses/30/lessons/42839
코딩테스트 연습 - 소수 찾기
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 �
programmers.co.kr
문제 설명
각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하는 solution 함수
알고리즘
1. 주어진 숫자를 분리하여 만들수 있는 숫자를 모두 구한다 (조합 이용)
2. 소수를 구하는 함수를 작성하여 모둔 경우의 숫자에 대해 소수를 판별한다
3. 소수 갯수 return
코드
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # 소수 찾기 from itertools import permutations import math def prime(num): if num in [0,1]: return False pos = True for i in range(2,int(math.sqrt(num))): if num%2 == 0: pos =False break return pos def solution(numbers): prime = set() number = list(numbers) numbers=[] for n in range(1,len(number)+1): numbers.extend( list(permutations(number,n))) for i in range(len(numbers)): num ='' for j in range(len(numbers[i])): num +=numbers[i][j] prime.add(int(num)) answer = 0 for num in prime: if num in[2,3]: answer +=1 if num>=4: sqrt_n=int(math.sqrt(num)) pos =True for d in range(2,sqrt_n+1): if num % d == 0: pos=False break if pos==True: answer+=1 return answer | cs |
'파이썬 > 프로그래머스' 카테고리의 다른 글
[python] 프로그래머스 - 네트워크 (0) | 2020.08.05 |
---|---|
[python] 프로그래머스 - 타겟넘버 (0) | 2020.08.05 |
[python] 프로그래머스 - H-index (0) | 2020.08.05 |
[python ] 프로그래머스 - 가장 큰 수 (0) | 2020.08.05 |
[python] 프로그래머스 - k 번째 수 (0) | 2020.08.05 |
문제링크 : https://programmers.co.kr/learn/courses/30/lessons/42839
코딩테스트 연습 - 소수 찾기
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 �
programmers.co.kr
문제 설명
각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하는 solution 함수
알고리즘
1. 주어진 숫자를 분리하여 만들수 있는 숫자를 모두 구한다 (조합 이용)
2. 소수를 구하는 함수를 작성하여 모둔 경우의 숫자에 대해 소수를 판별한다
3. 소수 갯수 return
코드
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # 소수 찾기 from itertools import permutations import math def prime(num): if num in [0,1]: return False pos = True for i in range(2,int(math.sqrt(num))): if num%2 == 0: pos =False break return pos def solution(numbers): prime = set() number = list(numbers) numbers=[] for n in range(1,len(number)+1): numbers.extend( list(permutations(number,n))) for i in range(len(numbers)): num ='' for j in range(len(numbers[i])): num +=numbers[i][j] prime.add(int(num)) answer = 0 for num in prime: if num in[2,3]: answer +=1 if num>=4: sqrt_n=int(math.sqrt(num)) pos =True for d in range(2,sqrt_n+1): if num % d == 0: pos=False break if pos==True: answer+=1 return answer | cs |
'파이썬 > 프로그래머스' 카테고리의 다른 글
[python] 프로그래머스 - 네트워크 (0) | 2020.08.05 |
---|---|
[python] 프로그래머스 - 타겟넘버 (0) | 2020.08.05 |
[python] 프로그래머스 - H-index (0) | 2020.08.05 |
[python ] 프로그래머스 - 가장 큰 수 (0) | 2020.08.05 |
[python] 프로그래머스 - k 번째 수 (0) | 2020.08.05 |