Algorithm/Baekjoon 54

[Python] 9020. 골드바흐의 추측

# 에라토스테네스의 채로 소수인지 판별 해놓기 is_prime = [True for _ in range(10001)] for i in range(2, 10001): if i*i > 10000: break if not is_prime[i]: continue for j in range(i*i, 10001, i): is_prime[j] = False tc = int(input()) for _ in range(tc): N = int(input()) s = N//2 # 반으로 쪼개기 e = N//2 # 같은 수 두번 더했는데 답인 경우 if is_prime[N//2]: if s + e == N: print(s, e) else: # 포인트 두개로 한칸씩 옮겨주며 답을 찾는다. 왜냐면 중간에서 같은 차이만큼 떨어져 ..

Algorithm/Baekjoon 2021.09.14

[Python] 21919. 소수 최소 공배수

# 소수인지 판별하는 함수 def is_pn(n): for i in range(2, n): if i * i > n: # 이 뒤는 볼 필요도 없어 break if n % i == 0: # 소수가 아니라면 ? False 반환 return False return True n = int(input()) # 수열의 길이 numbers = set(map(int, input().split())) # 입력받는 수열 answer = 1 for n in numbers: if is_pn(n): answer *= n if answer == 1: # 소수 없어 print(-1) else: print(answer) * 수열 리스트를 입력받을 때, 중복인 수들이 올 수 있기 때문에 set() 쓰면 된다.

Algorithm/Baekjoon 2021.09.14

[Python] 15649. N과 M(1)

방문 처리를 하면서 수열을 구하는 코드. def recur(cur): # m개 골랐다면 print if cur == m: print(*arr) return for i in range(n): if not visited[i]: # 중복 아니라면 visited[i] = True # 방문 처리 arr[cur] = i+1 # 리스트에 숫자 담기 recur(cur + 1) # 그 다음 숫자 들어가서 가져와 visited[i] = False # 다음에 쓰기 위해 방문 처리 해제 # 1부터 자연수 n까지, 중복없이 m개 고른 수열 구하기 n, m = map(int, input().split()) arr = [0 for _ in range(m)] # 길이가 m인 수열 담을 리스트 visited = [False for _..

Algorithm/Baekjoon 2021.09.07