728x90
와 대박 재귀함수를 다 풀었다.
예전에 재귀에서 한 번 무너진 기억이 있어서 다 끝낼 수 있을까했는데 생각보다 쉬웠다.
이번 주는 프로그래밍 연습 부분에서 함수, 재귀함수 부분을 풀었다.
재밌다~~ 코테 문제 푸는 게 이렇게 재밌는 거였다니
n = int(input())
arr = list(map(int, input().split()))
def lcm(a, b):
for num in range(max(a, b), a * b + 1):
if num % a == 0 and num % b == 0:
return num
def calculate(n, value):
if n == 0:
return lcm(arr[0], value)
return calculate(n - 1, lcm(arr[n], value))
print(calculate(n - 1, 1))
이번 주에 가장 시간을 많이 들인 문제였다.
최소 공배수를 어떻게 함수로 작성할지, 또 어떻게 넘길지를 고민했었다.
나중에 보니 내가 작성한 방식보다 a * b // gcd 방식이 더 효율적인 것 같다.
내가 짠 코드는 최소 공배수를 구하기 위한 계산을 너무 많이 한다.
이제 코드 짜다가 궁금한 것도 생겨서 게시판에 질문도 한다.
진짜 재미가 붙긴 했나보다. 전에는 궁금한 거고 뭐고 풀면 땡이었는데.
728x90