본문 바로가기

전체 글130

10. 최대공약수, 최소공배수 공통되는 약수와 공통되는 배수, 공약수와 공배수 서로소는 두 수의 공약수가 1밖에 없는 수다. 서로소가 아닐 경우 소인수분해와 방법은 비슷하다. 두 숫자를 나란히 배치해서 'ㄴ'자를 긋고 두 수의 공통되는 소인수로 나눠주면 된다. 2 24 36 2. 12. 18 3 6 9 2. 3 약수인 왼쪽의 숫자를 곱하면 24와 36의 최대공약수가 나온다. (왼쪽을 I자로 곱하면 된다.) 2^2 * 3 = 4 * 3 = 12 최대공약수와 몫을 다 곱하면 최소공배수가 나온다. (L자로 곱하면 된다.) 2^3 * 3^2 = 8 * 9 = 72 소인수분해로 표현이 된 수가 나올 경우 최대공약수와 최소공배수를 구하는 방법도 알아보자 최대공약수 = G 42 = 2^1 * 3 * 7 40 = 2^3 * 5 G = 2^1 ex).. 2022. 1. 20.
5주차 lambda 함수 lambda함수란 이름없는 한줄짜리 함수다, 아래와 같이 작성 lambda 인수 나열 : 반환할 내용 인수가 없으면 생략 가능 예시 lambda x,y: x+y 함수의 인수로 함수를 넣을 수 있으니 람다식을 활용할 수 있다. def run(func, x): print(func(x)) run(lambda x: x+1, 1) func에 람다식이 대입되고, x에 1이 대입되었다. 그럼 1에 1을 더한 2가 프린트되고 종료된다. 2022. 1. 20.
5주차 4, 중첩함수와 적용되는 지역변수 def funk1(a): def funk2(): nonlocal a a += 1 return a return funk2() funk1(2) 결과 3 nonlocal이란 로컬도, 글로벌도 아닌 윗단계에서 사용하는 로컬변수 a를 받겠다는 말이다. 만약 여기서 global a를 쓰게되면 funk1의 a가 아닌 전역변수 a를 가져올 것이다. 2022. 1. 19.
5주차 3, generator와 yield 일반적인 함수는 return값이 하나다. 하지만 제네레이터와 yield를 사용하면 여러가지의 반환을 기록하고 원할 때 사용하는 것이 가능하다. def gen(n): while n>0: yield n n -= 1 gen(10) 결과 list(gen(10)) [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 그냥 사용할 경우 제네레이터 객체로 반환되지만, 리스트등 연산을 사용하면 각 결과값을 담은 yield를 사용할 수 있다. 그리고 제네레이터는 사용되기 전까지 연산되지 않는다. 2022. 1. 19.