programing
-
[Programmers] 소수 만들기programing/Algorithm 2021. 3. 27. 21:27
소수 만들기 Summer/Winter Coding(~2018) level 1 python 3 from itertools import combinations import math; def is_prime(n): # n의 최대 약수가 sqrt(n) 이하이므로 i=sqrt(n)까지 검사 m = int(math.sqrt(n)) divisors = [i for i in range(1, m + 1) if n % i == 0] return len(divisors) == 1 def solution(nums): combi = list(combinations(nums, 3)) enables = list(filter(lambda com: is_prime(com[0] + com[1] + com[2]), combi)) retu..
-
[Programmers] 행렬의 덧셈programing/Algorithm 2021. 3. 27. 20:07
행렬의 덧셈 level 1 연습문제 python3 def solution(a, b): return [[a[m][n]+b[m][n] for n in range(len(a[0]))] for m in range(len(a))] list comprehension을 이용. 두 행렬의 크기가 같기 때문에 가능한 방법. import numpy as np def sumMatrix(A,B): A = np.array(A) B = np.array(B) answer = A+B return answer.tolist() 혹은 numpy를 이용해도 된다.
-
[Programmers] 최대공약수와 최소공배수programing/Algorithm 2021. 3. 7. 17:15
최대공약수와 최소공배수 연습문제 level 1 python 3 def gcd(m, n): if m < n: m, n = n, m if n == 0: return m if m % n == 0: return n else: return gcd(n, m%n) def lcm(m, n): return (m * n) / gcd(m, n) def solution(n, m): return [gcd(n, m), lcm(n, m)] 최대공약수는 유클리드 호제법으로, 최소공배수는 최대공약수를 활용하여 구현한다.