python으로 알고리즘 풀기 - 잊을 수도 있는 꿀팁 정리

김유진·2023년 2월 21일
0

Algorithm

목록 보기
9/9

람다를 현명하게 사용하자

람다는 사실 고차함수를 이용할 때 보조하는 역할로 자주 쓰이고는 한다. 형태가 원래 어떻게 생겼는지 알아야, 정확하게 사용할 수 있을 것이다.

람다의 기본 문법

lambda 매개변수 : 결과

람다 함수는 return 키워드 없이 자동으로 결과물이 리턴된다.

람다로 배열 영리하게 정렬하기

mylist = [[0,1], [2,1], [2,3], [3,1]]
mylist.sort(key=lambda x:x[1])
//mylist : [[0,1], [2,1], [3,1], [2,3]]

각 배열의 1번째 인덱스를 기준으로 정렬하게 된다.

mylist = [[0,1], [2,1], [2,3], [3,1], [-1,1], [2,2]]
mylist.sort(key=lambda x:(x[1], x[0]))
//mylist : [[-1,1]], [0,1], [2,1], [3,1], [2,1], [2,2], [2,3]])

먼저, 각 배열의 1번째 인덱스를 기준으로 정렬한 뒤 그 리스트들은 0번째 인덱스 기준으로 또다시 정렬한다.

2. 메모리를 아끼기 위해 정렬을 보는 시각을 개선해보자

dictionary를 사용하여 메모리를 아껴보자.

해시 자료구조를 활용한다는 개념으로 접근해보면 재미있다.

재밌었던 점 이번

0부터 10,000까지의 숫자를 입력받는다. 그렇기 때문에 10,001개의 인덱스를 가진 리스트를 만들어 두고 입력받는 수를 index로 한 다음 중복되는 수는 index의 값을 늘리는 방식으로 확인하는 것이다.
이런 부분은 Dp 코드 작성할 때도 많이 써먹었던 건데 정렬 문제에서도 이런 패턴으로 나올 수 있다는 점을 알고 있어야겠다.

0개의 댓글