import math
g = math.gcd(10, 20) # 10
https://school.programmers.co.kr/learn/courses/30/lessons/135807
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이 문제는 결국 해설을 보았다. 시간초과문제를 해결하지 못해서 풀이를 확인했다.
최대공약수를 이용해서 푸는 문제!
gcd를 import해서 사용한다.
from math import gcd
def get_gcd(arr):
g = arr[0]
# 배열을 돌면서 gcd를 구함
for i in range(1,len(arr)):
g = gcd(arr[i],g)
return g
def solution(arrayA, arrayB):
answer = 0
a_gcd = get_gcd(arrayA)
b_gcd = get_gcd(arrayB)
for a in arrayA:
if a % b_gcd == 0:
break
else:
answer = max(b_gcd,answer)
for b in arrayB:
if b % a_gcd == 0:
break
else:
answer = max(a_gcd,answer)
return answer
- 여기서 gcd와 lcm 라이브러리를 사용하는 방법을 알아보자.
1) gcd : 최대공약수
import math
g = math.gcd(10, 20) # 10
2) lcm : 최소공배수
from math import gcd
def lcm(x, y):
return x * y // gcd(x,y)
print(lcm(2, 4)) # 4
math 모듈에 대해 알 수 있는 시간이었다.
'👩💻 코테 공부 > 코테 공부' 카테고리의 다른 글
| [코테 - py] 백준 14890번 경사로 (0) | 2024.07.26 |
|---|---|
| [코테 - py] 숫자 문자열과 영단어 (0) | 2024.07.24 |
| [코테 - py] 뒤에 있는 큰 수 찾기 (0) | 2024.07.22 |
| [코테 - Kotlin] 백준 1522번 문자열 교환 (0) | 2024.07.10 |
| [Kotlin] 문법 정리 (0) | 2024.06.30 |