반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12953
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import math
from collections import deque
def solution(arr):
q = deque(arr)
while len(q) >= 2:
a = q.popleft()
b = q.popleft()
gcd = math.gcd(a, b)
lcm = (a*b) // gcd
q.appendleft(lcm)
return q.popleft()
deque 자료구조와 math 라이브러리를 이용하였습니다.
q 변수에 입력받은 arr를 deque 자료구조로 바꾸어줍니다.
반복문을 이용하여 q의 크기가 1개가 되면 반복문을 종료하게됩니다.
popleft() 함수를 이용하여 리스트의 앞에 위치한 값 2개를 뽑아 math.gcd() 를 사용하여 두 수의 최대 공약수를 구해줍니다.
최대공약수를 활용하여 두 수의 최소공배수를 구하고 q에 맨 앞으로 넣어줍니다.
주어진 예제와 같이 입력이 [2, 6, 8, 14]일 때
반복문의 출력은 다음과 같습니다.
q의 크기가 1개가 되면 함수를 종료하고 q의 있는 마지막 값을 뽑아 return 합니다.
반응형
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 할인 행사 파이썬(Python) (0) | 2022.12.26 |
---|---|
[코딩테스트] 프로그래머스 크기가 작은 부분문자열 파이썬(Python) (0) | 2022.12.23 |
[코딩테스트] 프로그래머스 연속 부분 수열 합의 개수 파이썬(Python) (0) | 2022.12.21 |
[코딩테스트] 프로그래머스 명예의 전당 (1) 파이썬(Python) (0) | 2022.12.20 |
[코딩테스트] 프로그래머스 저자 별 카테고리 별 매출액 집계하기 MySQL (0) | 2022.12.19 |