본문 바로가기
알고리즘/소스코드

KOREATECH 1010: 접두 소수

by cjw.git 2020. 12. 9.

Link : judge.koreatech.ac.kr/problem.php?id=1010


Python

더보기
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
import math
 
from sys import stdin
 
start = ['2''3''5''7']
case = ['1''3''7''9']
 
 
def prime_number(number):
    n = int(number)
    for i in range(2int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True
 
 
def makeNumber(arr=None, length=None, depth=None):
    if arr is None:
        arr = []
    data = start if depth == 0 else case
    for i in data:
        arr[depth] = i
        if length - 1 == depth:
            if prime_number(''.join(arr)):
                print(''.join(arr))
        else:
            if prime_number(''.join(arr)):
                makeNumber(arr[:], length, depth + 1)  # arr[:] call by value로 값을 넘겨줌
 
 
number_length = int(stdin.readline().strip())
arr = ['' for _ in range(number_length)]
makeNumber(arr[:], number_length, 0)  # arr[:] call by value로 값을 넘겨줌
 
cs

FeedBack

  1. 재귀의 시간복잡도를 파악할 수 없음

 

 

 

cjw.git@gmail.com

'알고리즘 > 소스코드' 카테고리의 다른 글

KOREATECH 1015: 괄호 짝  (0) 2020.12.09
KOREATECH 1011: 징검다리  (0) 2020.12.09
KOREATECH 1007: 유일한 수  (0) 2020.12.08
KOREATECH 1004: 뒤집어 더하기  (0) 2020.12.08
KOREATECH 1003: 0을 만들자 - Small  (0) 2020.12.08

댓글