문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12953
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
최소공배수 : 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미
n 개의 숫자를 담은 배열 안에 수들의 최소공배수를 반환하는 문제이다.
제한사항
- arr은 길이 1 이상, 15 이하인 배열입니다.
- arr의 원소는 100 이하인 자연수입니다.
풀이
리스트 안의 두 수를 비교하면서, 두 수 중 작은 숫자를 기준으로 최대공약수를 구하고,
두 수의 최소공배수를 구해, arr 남은 수와 최소공배수를 갱신하는 방향으로 문제를 풀었다.
최소공배수 : (n1 * n2) ÷ 최대공약수
✅ Code - 성공
def solution(arr):
answer = 1
def check_lcm(a, b):
for i in range(min(a, b), 0, -1):
if a % i == 0 and b % i == 0:
return i
return 1
for n in arr:
answer = answer * n // check_lcm(answer, n)
return answer
'알고리즘 문제 > 프로그래머스_Lv2 도장깨기' 카테고리의 다른 글
[프로그래머스] 배달 (Python) (0) | 2024.01.15 |
---|---|
[프로그래머스] 짝지어 제거하기 (Python) (0) | 2024.01.12 |
[프로그래머스] JadenCase 문자열 만들기 (0) | 2024.01.05 |
[프로그래머스] 멀리 뛰기 (Python) (1) | 2024.01.03 |
[프로그래머스] 땅따먹기 (Python) (1) | 2023.12.20 |