728x90
[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/12953#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[코드]
첫 번째 풀이
- gcd 함수 라이브러리를 안 쓰고 풀고 싶어서 유클리드 호제법을 구현했다.
- arr 길이가 1인 경우부터 나눠서 구현했다.
def gcd(a, b):
if b > a:
a, b = b, a
while b != 0:
a, b = b, a % b
return a
def solution(arr):
if len(arr) == 1:
return arr[0]
a, b = arr[0], arr[1]
x = gcd(a, b)
answer = a * b // x
for i in range(2, len(arr)):
x = gcd(answer, arr[i])
answer = answer * arr[i] // x
return answer
두 번째 풀이
- arr 길이가 1인 경우를 나누지 않고 풀 수 있다고 생각이 들었다.
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def solution(arr):
answer = arr[0]
for i in range(1, len(arr)):
answer = answer * arr[i] // gcd(answer, arr[i])
return answer
반응형
'🚩 Coding Test > Programmers' 카테고리의 다른 글
[Programmers][Python] Lv.0 숨어있는 숫자의 덧셈(2) (0) | 2024.06.19 |
---|---|
[Programmers][Python] Lv.2 점프와 순간 이동 (1) | 2024.06.19 |
[Programmers][Python] Lv.2 기능개발 (0) | 2024.06.19 |
[Programmers][Python] Lv.2 튜플 (0) | 2024.06.18 |
[Programmers][Python] Lv.2 최솟값 만들기 (0) | 2024.06.18 |