-
[Programmers] 숫자 카드 나누기 _Python알고리즘/프로그래머스 2022. 11. 23. 00:00728x90반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/135807
풀이
from math import gcd # 리스트 내 최대 공약수 구해줌 def get_gcd(arr): g = arr[0] for i in range(1,len(arr)): g = gcd(g,arr[i]) return g def solution(arrayA, arrayB): # 첫 번째 조건, 두 번째 조건 둘다 아닐때 res = 0 # 최대공약수 가져옴 A, B = get_gcd(arrayA), get_gcd(arrayB) # 첫 번째 조건 for i in arrayB: if i % A == 0: break else: res = max(A,res) # 두 번째 조건 for i in arrayA: if i % B == 0: break else: res = max(B,res) return res
새로 알게 된 함수 gcd
사용법
from math import gcd math.gcd(3) # 3 반환 math.gcd(3, 6) # 3 반환 math.gcd(66, 22, 11) # 11 반환
* 최대 공약수란?
둘 이상의 정수의 공약수 중에서 가장 큰 것을 말한다.
greatest common divisor 라 부르며 약자로 gcd 라 한다. 이 약자를 그대로 함수 이름으로 사용하는 걸로 보임LIST'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Programmers] 삼총사 _Python (2) 2022.12.01 [Programmers] 귤 고르기 _Python (1) 2022.11.26 [Programmers] 햄버거 만들기 _Python (1) 2022.11.24 [Programmers] 푸드 파이트 대회 _Python (0) 2022.11.24 [Python] 진수 변환하기 (숫자 <-> 문자열) bin(), oct(), hex(), foramt() (0) 2022.11.04