🔻Extracurricular Activity/컴프1(Python) 튜터링 자료

[7주차] 최댓값 최솟값 찾기, 최대공약수 최소공배수, 팩토리얼

_니지 2022. 5. 26. 20:52

 

❗최댓값 최솟값 찾기

리스트에서 최댓값, 최솟값을 찾기 위해서 min( ), max( )함수를 쓸 수도 있지만 구현할 수도 있음

 

1. 동작 원리

최댓값은 0으로 최솟값은 큰 수로 임의로 설정 후 for문으로 원소 하나하나와 비교해준다

maxVal = 0
minVal = 100

for n in num:
    if n > maxVal:
        maxVal = n

for n in num:
    if n < minVal:
        minVal = n

 


 

❗최대공약수 최소공배수

1. 최대공약수와 최소공배수

GCD란?   Greatest Common Divisor: 최대공약수

             두 자연수의 공통된 약수 중 가장 큰 수 

LCM이란?    Least Common Multiple: 최소공배수

                두 자연수의 공통된 배수 중 가장 작은 수  -> 최대공약수를 통해 구할 수 있음

 

2. 동작 원리

-GCD

a을 b으로 나눈 나머지를 a%b이라고 하면, a과 b의 최대공약수는 b과 a%b의 최대공약수와 같은 것을 이용

-LCM

두 수의 곱을 두 수의 최대공약수로 나누어주면 최소공배수를 알 수 있음

def gcd(a, b):
    while b > 0:
        a, b = b, a % b
    return a

def lcm(a, b):
    return a * b / gcd(a, b)

 


 

❗팩토리얼

1. 팩토리얼

1부터 N까지 차례대로 곱하는 것 -> N!

이때 0!도 1로 나온다!

ex) 4! = 4*3*2*1 = 24

 

2. 동작 원리

#재귀함수
def factorial1(n):
    if n==0 or n==1:
        return 1
    return n * factorial1(n-1)


#for문
def factorial2(n):
    res = 1
    for i in range(1, n+1):
        res *= i
    return res
728x90
반응형