개발/Python
[Pyhton/파이썬] 순열과 조합
알고리즘 문제를 풀다보면 순열과 조합을 쓸 일이 꽤 많다. 물론 없이도 풀 수 있겠지만 itertools 라이브러리를 사용하면 간단하게 구현이 가능하다! import itertools 순열 서로 다른 n개 중 r개를 나열하는 경우의 수이다. import itertools arr=[1,2,3,4] per=itertools.permutations(arr,2) for ele in per: print(ele) """ (1, 2) (1, 3) (1, 4) (2, 1) (2, 3) (2, 4) (3, 1) (3, 2) (3, 4) (4, 1) (4, 2) (4, 3) """ 중복 순열 중복 가능한 n개 중에 r개를 나열하는 경우의 수이다. import itertools arr=[1,2,3,4] pro=itertoo..
[Python] 데크(deque)
Pyhton의 Deque는 collections 모듈을 사용하여 구현됩니다. 리스트에서 컨테이너 양쪽 끝에서 삽입이나 팝을 할 때 O(n)의 시간복잡도를 갖는 반면 Deque는 O(1)의 시간복잡도를 제공하기 때문에 이런 경우 Deque를 사용하는 것이 좋습니다. 데크는 다음과 같이 import하여 사용합니다. from collections import deque deq = deque(['name','age','rin']) print(deq) deque의 메소드에 대해 알아보겠습니다. append(item) : item을 deque의 오른쪽 끝에 삽입합니다. appnedleft(item) : item을 deque의 왼쪽 끝에 삽입합니다. pop() : deque의 오른쪽 끝에서 엘리먼트를 가져옴과 동시에..
[파이썬] find, index 함수
find find 함수는 str 클래스 내장 함수이며 문자 및 문자열의 위치를 찾아준다. 처음 검색된 위치를 반환하고 없으면 -1을 반환한다. string.find(찾을 문자) string.find(찾을 문자, 시작, 끝) data="abcdefghijklmnopqrstuvwxyz" print(data.find('b')) # >>> 1 print(data.find('bcd',0,7)) # >>> 1 print(data.find('bhs',0,7)) # >>> -1 index index 함수는 find 함수와 비슷하게 str 클래스 내장 함수이며 문자 및 문자열의 위치를 찾아준다. 처음 검색된 위치를 반환한다는 것은 find 함수와 같지만 찾는 문자나 문자열이 없으면 오류를 반환한다는 점이 find 함수와..
[Python] sort(), sorted(), lambda
알고리즘 문제를 풀다보면 여러 조건으로 정렬을 해야하는 경우가 있다. 파이썬으로 문제를 풀 때는 sort(), sorted()를 주로 사용한다. sort() a=[4,2,7,3,8] data=a.sort() #data=[2,3,4,7,8] 변수명.sort() 는 기본 정렬 기능으로, 오름차순으로 정렬한다. 내림차순으로 정렬하고 싶은 경우에는 변수명.sort(reverse=True) 라고 입력하면 된다. sorted() #두번째 인자를 기준으로 오름차순 정렬하고, 두번째 인자 값이 같은 경우 첫번째 인자를 기준으로 내림차순 정렬하는 경우 a=[(1,2),(3,4),(6,2),(7,1)] b=sorted(a,key=lambda x : (x[1],-x[0])) sorted의 키 인자로, 내가 설정할 비교 함수..