300x250
알고리즘 문제들을 풀어보면서 특히 자주 사용하는, 유용한 함수들을 이 페이지에 따로 정리해두려 한다. 최대한 많은 함수들을 한눈에 알아볼 수 있도록 간단하게 정리하므로, 상세한 내용이 궁금하다면 따로 검색을 해보도록 하자.
- import sys → sys.stdin.readline()
- sys(system)이라는 라이브러리이다. 특히 sys.stdin.readline() 함수는 입력을 조금 더 빠르게 받아올 수 있어 습관처럼 사용하고 있다. 또한 readline() 뒤에 split('옵션') (한 줄 입력을 옵션을 기준으로 나누어 받기), rstrip() (readline()은 개행문자까지 포함하여 한 줄을 읽어오는데, 가장 오른쪽, 즉 개행문자를 없애는 함수) 등을 통해 추가적인 함수를 사용할 수 있다.
- 재귀함수 사용 시 import sys → sys.getrecursionlimit(), sys.setrecursionlimit(설정할 값)
- 파이썬에서 재귀함수를 사용할 때, 채점 사이트에 따라 최대 재귀 깊이 설정 값이 작은 경우가 있다.(BOJ → 1000) 이를 getrecursionlimit()으로 값이 얼마인지 확인할 수 있고, 작다면 setrecursionlimit(10**6)으로 10**6정도로 확보하는 것이 좋다.
- map(변환 함수, 순회 가능한 데이터)
- 리스트의 요소를 지정된 함수로 처리해주는 함수이다. 단, 원본 리스트를 변경하지 않고 새로운 리스트를 생성한다. 두 번째 인자로 넘어온 데이터가 담고 있는 모든 데이터에 변환 함수를 적용하여 다른 형태의 데이터를 반환한다. 예를들면, map(int, Arr)라고 하면 Arr의 모든 요소들을 int형으로 변환해준다.
- string.find(찾고싶은 string, 시작 index - 생략 가능, 끝 index - 생략 가능)
- 문자열에서 찾고싶은 특정 문자 또는 문자열을 존재하는지 확인하고, 존재하면 맨 처음 찾은 문자의 index를 반환해주고 찾는 문자가 존재하지 않으면 -1을 반환한다. 시작 index의 디폴트값은 0, 끝 index의 디폴트값은 문자열의 마지막 index이다.
- list.sort(reverse=False - 생략 가능)
- list 객체 자체를 정렬해준다. reverse 옵션은 디폴트는 False이며, False는 오름차순, True는 내림차순 정렬이다.
- sorted(정렬할 데이터, key=lambda x : x[i] - 생략 가능, reverse=False - 생략 가능)
- sort는 list 자체를 정렬하지만, sorted는 iterable한 데이터를 새로운 정렬된 리스트로 만들어주는 함수이다. key 값을 기준으로 비교를 하여 정렬을 할 수 있는데, 이중리스트 등에서 key = lambda x : x[0] (리스트의 첫 번째 요소를 기준으로 정렬하겠다)와 같이 사용된다. 첫 번째 요소가 같으면 두 번째 요소를 반대 차순으로 정렬하고 싶다면 key = lambda x : (x[0], -x[1])과 같이 튜플로 그 순서를 입력해줄 수 있다.
728x90
최근댓글