티스토리 뷰
728x90
https://programmers.co.kr/learn/courses/30/lessons/42839
- 해설 :
숫자로 이루어진 문자열이 주어질 때, 각 자릿수들을 조합해서 만들 수 있는 모든 수들 중 소수만 찾아서 개수를 출력하면 된다.
- 풀이 :
numbers에 담겨있는 숫자의 각 자릿수들을 1부터 numbers의 길이만큼 개수만큼 조합한 모든 수들에 대해 isPrime함수를 통해 소수인지 판별한다. 소수일 경우 answer에 1을 추가해주었고 sum으로 총합을 계산하였다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
from itertools import permutations
l = []
def isprime(x):
if x in l:
return False
l.append(x)
if x == 1 or x == 0:
return False
for i in range(2, x):
if x % i == 0:
return False
return True
def solution(numbers):
answer = 0
for i in range(1,len(numbers)+1):
answer += sum(1 for a in permutations(numbers,i) if isprime(int(''.join(a))))
return answer
|
cs |
320x100
'Algorithm > Brute Force' 카테고리의 다른 글
(Python) - BOJ(1107번) : 리모컨 (0) | 2022.01.25 |
---|---|
(Python) - BOJ(1038번) : 감소하는 수 (0) | 2022.01.25 |
(Python) - 프로그래머스 : 올바른 괄호의 개수 (0) | 2022.01.24 |
(Python) - 프로그래머스 : 카펫 (0) | 2022.01.20 |
(Python) - 프로그래머스 : 모의고사 (0) | 2022.01.18 |
댓글
© 2022 WonSeok, All rights reserved