포시코딩

12월25일 본문

TIL

12월25일

포시 2022. 12. 24. 23:56
728x90

알고리즘 문제에 대한 다양한 풀이법에서 얻는 지식들

numpy

내가 지금까지 알고 있던 단순한 배열이 아닌 

다차원 배열에 대해 계산할 때 사용하는 Python의 라이브러리이다. 

 

비록 모든 코딩테스트에서 지원할지 미지수이지만 

실제로 행렬 곱셈이나 여러 다차원 배열에 고려해야 되는 상황이 있을 수 있으므로 

짚고 넘어갈 필요성이 있었다.

 

행렬의 덧셈에 대해 나는 단순히 for문과 zip을 써서 구했는데

for arr12 in zip(arr1, arr2):
    temp = []
    for x in zip(*arr12):
        temp.append(sum(x))
    answer.append(temp)

zip() 함수를 몰랐으면 매우 힘들게 구했을 것이다.

 

하지만 numpy를 쓴다면 이렇게 단순해진다.

import numpy as np
arr1 = np.array(arr1)
arr2 = np.array(arr2)
answer = arr1 + arr2

행렬을 만들어 두 행렬을 더한걸로 보이는데 

문제가 워낙 단순해서 나중에 다시 numpy를 사용할 일이 생겼을 때 이번일을 계기로 

좀 더 명확히 알 수 있을 것 같다.

 

lambda

Python을 사용하며 자주 보았고 예전에 Java를 다룰 때에도 얼핏 봤던 람다(lambda) ..

막상 알아보니 실상은 그냥 Javascript에서의 익명함수였다.

lambda 표현식 : 매개변수

단순히 이렇게 사용하면 끝이었는데 map(), filter()등의 함수와 같이 사용한다면 매우 강력한 무기가 될 것으로 보인다.

이제 좀 익숙하게 사용이 가능해진 리스트 컴프리헨션과 더불어 사용한다면

복잡한 for문과 if문들을 다룰 때 좀 더 깔끔하고 좋은 코드로 작성할 수 있겠다.

 

 

728x90

'TIL' 카테고리의 다른 글

12월27일  (0) 2022.12.27
12월26일  (0) 2022.12.25
12월24일  (0) 2022.12.24
12월23일  (0) 2022.12.23
12월22일  (0) 2022.12.22