본문 바로가기

Python9

그리디 알고리즘 정리 현재 상황에서 가장 좋은 선택지를 택하는 알고리즘, 탐욕 알고리즘이라고도 불립니다. 주의할 점으로는 그리디 알고리즘이 최적의 해가 아닌 경우가 있을 수 있어 잘 추론해야 합니다. 그리디 알고리즘를 설명하기 가장 좋은 거스름돈 문제 money = 입력값 count = 0 ##거스름돈 갯수 세기 array =[500, 100, 50, 10] ##거스름돈 리스트화 for coin in array: count += money // coin ## 나눈 몫 money %= coin ## money에 coin 나눈 나머지 큰 금액의 동전인 500원부터 차례대로 계산하면 되기에 그리디 알고리즘을 사용하면 풀리게 됩니다. 동전의 금액이 300원 200원 등 이라면 얘기가 다를 수 있기에 문제를 잘 살펴야합니다. ## 여.. 2021. 1. 22.
람다 표현식 정리 람다 표현식이란 함수를 간단하게 정의할 수 있는 식 형태입니다. 원래 함수 def plus(a, b): return a + b plus(5, 10) --> 15 람다식 lambda a, b: a + b (5, 10) ## lambda 매개변수: return값 (인수) --> 15 ex) array = [(치킨, 16000), (피자, 15000), (족발, 20000)] def my_key(x): return x[1] print(sorted(array, key=my_key)) print(sorted(array, key=lambda x: x[1])) --> [(피자, 15000), (치킨, 16000), (족발, 20000)] [(피자, 15000), (치킨, 16000), (족발, 20000)] 주의 람.. 2021. 1. 19.
리스트 컴프리헨션 정리 파이썬에서의 리스트는 변수명 = [] 로 쉽게 초기화가 가능합니다. 여기서 리스트 컴프리헨션이란? 파이썬에서 리스트를 초기화할 때 대괄호 안 반복문과 조건문을 함께 사용하는 것입니다. 일반적인 코드 array = [] for i in range(10): if i % 2 == 1: array.append(i) ##리스트 삽입 --> [1, 3, 5, 7, 9] 리스트 컴프리헨션 array = [i for i in range(10) if i % 2 == 1] --> [1, 3, 5, 7, 9] 코드가 짧아진 것을 볼 수 있습니다. 알고리즘에 적용해보면 N * M 리스트를 만들 때 array = [[0] * M for _ in range(N)] ## _(언더바)를 사용하는 이유 = 반복문 사용시 반복을 위한 .. 2021. 1. 19.