[4코1파] 4명의 안드로이드 개발자와 1명의 파이썬 개발자의 코딩 테스트 서막 : 4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원

START :

[3코1파] 2023.01.04~ (39일차)
[4코1파] 2023.01.13~ (30일차)

Today :

2023.02.11 [30일차]

프로그래머스 LV2
N개의 최소공배수
https://school.programmers.co.kr/learn/courses/30/lessons/12953

문제 설명
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.

제한 사항
arr은 길이 1이상, 15이하인 배열입니다.
arr의 원소는 100 이하인 자연수입니다.

입출력 예

문제 풀이 방법

  • 최소공배수, 최대공약수는 베이스 기초 알고리즘에서 너무 많이봐서
    이제 외워버린.. 최대공약수는 math의 gcd 모듈을 쓰고,
    최소공배수는 유클리드 호제법에 의해서 두 수의 곱에 최대공약수를 나눈 몫임을 그래서 그대로 구현

엥 뭐고?
뭔가 이상해서 리스트에 넣지 말고 그냥 구현
접근을 잘못한거 같음


그렇지 그래야지 그래야 내 코드 답지

내 코드

import math

def solution(arr):
    answer = arr[0]
    
    for a in arr:
        answer = (answer * a) //math.gcd(answer, a)
    
    return answer

증빙

다른 사람 풀이

그들도 gcd를 이용했다. 코드는 다르지만 나랑 유사함

여담

까먹고 있다가 갑자기 생각나서 킴.. 천만원 아낌
아낀 천만원으로 부자돼야지

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글