일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 네트워크 관리사 2급 실기
- it 뉴스
- 네트워크 관리사
- 백준위
- 코딩테스트 연습
- KT
- IT 동향
- html
- Java
- 코딩테스트
- 카카오
- 구글
- java 객체지향 프로그래밍
- 네트워크 관리사 2급
- 백준
- 신문스크랩
- 싸피셜
- SSAFY
- 싸피
- SSAFY 7기
- SSAFYcial
- python
- 리얼클래스
- 인앱결제
- 신문 스크랩
- 우테코
- 코테
- 프로그래머스
- IT 트렌드
- it 이슈
Archives
- Today
- Total
개발자일걸요..?
최대공약수와 최소공배수 본문
728x90
반응형
링크 : https://programmers.co.kr/learn/courses/30/lessons/12940
코딩테스트 연습 - 최대공약수와 최소공배수
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의
programmers.co.kr
(프로그래머>코딩테스트 연습>연습문제>최대공약수와 최소공배수(level1))
<문제>
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.제한 사항
- 두 수는 1이상 1000000이하의 자연수입니다.
<내가 작성한 코드>
import math
def solution(n, m):
return [math.gcd(n,m),n*m//math.gcd(n,m)]
<다른 사람의 코드를 참고하여 작성한 코드>
def solution(n, m):
a,b = max(n,m), min(n,m)
c = 1
answer=[]
while(c>0):
c=a%b
a,b = b,c
answer = [a,int(n*m/a)]
return answer
<참고한 개념>
유클리드 호제법 : 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다.
- b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수
- 최소공배수 = (a*b)/최대공약수
반응형
'알고리즘코딩 > Programmers' 카테고리의 다른 글
2016년 (0) | 2021.07.26 |
---|---|
비밀지도 (0) | 2021.07.26 |
예산 (0) | 2021.07.25 |
문자열 내 마음대로 정렬하기 (0) | 2021.07.25 |
나누어 떨어지는 숫자 배열 (0) | 2021.07.25 |
Comments