https://school.programmers.co.kr/learn/courses/30/lessons/12940
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 해결방법
- 최대공약수는 n과 m중 min을 이용해서 최소값을 구하고 최소값부터 0까지 for문을 이용해서 n%i==0과 m%i==0이 참이면 append를 이용해서 answer 리스트에 i를 넣어준다.
- 최소공배수는 n과 m중 max를 이용해서 최대값을 구하고 최대값부터 n*m까지 for문을 이용해서 i%n ==0과 i%m==0이 참이면 append를 이용해서 answer 리스트에 i를 넣어준다.
2. 정답코드
def solution(n, m):
answer = []
# 최대공약수
for i in range(min(n, m), 0, -1):
if n % i == 0 and m % i == 0:
answer.append(i)
break
# 최소공배수
for i in range(max(n, m), n * m + 1):
if i % n == 0 and i % m == 0:
answer.append(i)
break
return answer
최대 공약수와 최소 공배수에 대한 이해만 있으면 쉽게 풀 수 있는 문제이다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.1 문자열 내 마음대로 정렬하기 (0) | 2022.09.12 |
---|---|
[프로그래머스] Lv.1 예산 (0) | 2022.09.12 |
[프로그래머스] Lv.1 행렬의 덧셈 (0) | 2022.09.11 |
[프로그래머스] Lv.1 문자열 다루기 기본 (0) | 2022.09.11 |
[프로그래머스] Lv.1 가운데 글자 가져오기 (0) | 2022.09.11 |