728x90
안녕하세요 뚜디 입니다
코딩테스트 연습 - N개의 최소공배수 | 프로그래머스 (programmers.co.kr)
< 프로그래머스 - N개의 최소공배수 (LV2) >
1. 연습 문제
2. 문제 풀이
3. 소스 코드
4. 결과
1. 연습 문제
※ 문제 설명
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.
※ 제한 조건
arr은 길이 1이상, 15이하인 배열입니다.
arr의 원소는 100 이하인 자연수입니다.
※ 입출력 예
arr | result |
[2,6,8,14] | 168 |
[1,2,3] | 6 |
2. 문제 풀이
임의의 리스트에 입력된 임의의 숫자들의 최소공배수를 찾는 문제입니다.
1. 임의의 리스트에서 가장 큰 숫자를 찾는다->리스트 마지막 인자값
2. 가장 큰 숫자와 임의의 리스트에 인자값들이 나누어 떨어지는지 확인한다.
: 모든 인자값들이 나누어 떨어진다면 최소공배수
3. 나누어 떨어지지 않는경우 가장 큰 숫자+1 을하여 2번동작을 무한반복한다.
3. 소스 코드
def solution(arr):
answer = 0
count = 0
temp = arr[-1]
while count != len(arr):
for j in range(len(arr)):
if (temp % arr[j] == 0):
count += 1
else:
count = 0
temp += 1
break
answer = temp
return answer
임의의 리스트에서 가장 큰 값을 가장 마지막 인자값이라고 단정지었는데, 문제에서 그 어떤 언급도 없었다
arr[-1]보단 MAX(arr)이 더 맞는 접근이였을거 같다.
4. 결과
728x90
'Programmers > Python' 카테고리의 다른 글
[Python] 프로그래머스 :: 행렬의 곱셈 (0) | 2021.12.28 |
---|---|
[Python] 프로그래머스 :: JadenCase 문자열 만들기 (0) | 2021.12.06 |
[Python] 프로그래머스 :: 없는 숫자 더하기 (0) | 2021.10.07 |
[Python] 프로그래머스 :: 음양 더하기 (0) | 2021.10.07 |
[Python] 프로그래머스 :: 내적 (0) | 2021.10.07 |