함수의 형태: '구분자'.join(리스트)
파이썬 리스트의 경우 단순히 대입 연산을 하면 값이 변경될 때 문제가 발생할 수 도 있기 때문에, 리스트의 값을 복제해야 할 때는 deepcopy() 함수를 사용한다.
이진 탐색 알고리즘 문제를 풀 때 bisect 라이브러리를 이용하면 쉽게 해결할 수 있는 경우가 있다. 이 라이브러리가 제공하는 기능은 크게 2가지이다.bisect_left(a, x): (정렬된) 리스트 a에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는 메서드 bise
우선순위 큐를 만들기 위해서 사용하는 자료구조는 heapq 이다. heapq 를 사용하는 이유는 아래와 같다.데이터를 삽입하거나 삭제하는데 log(n) 이라는 짧은 시간이 걸리기 때문이다.데이터를 꺼낼 때 가장 높은 값이나 혹은 가장 낮은 값을 보장한다. (파이썬의 h
알고리즘 문제를 풀다보면 단순하게 문자를 숫자로 변환해야 하는 경우가 있다. 이때 ord() 메서드를 사용하면 간단하게 해결할 수 있다.ord 는 문자열을 아스키코드로 바꿀 수 있다. 이때 아스키코드는 a, b, c.. 가 97, 98, 99.. 로 순차적으로 표현된다
이진 탐색문제를 풀 때 입력 데이터가 많거나, 탐색 범위가 넓은 편이다. 이때 단순히 (파이썬에서) input() 함수를 사용하면 데이터를 받아오는데만 시간이 많이 걸려서 시간 초과 판정을 받을 수 있다. 이때 sys 라이브러리를 사용하면 보다 빠른 입력을 받을 수 있
위와 같이 2개의 원소를 가지는 튜플로 이루어진 리스트에서 2번째 튜플 원소를 기준으로 정렬을 하려면 어떻게 해야할까?이때는 람다를 사용하면 되다. 이때 lambda x: x\[1] 는 리스트의 원소인 (a, b) 에서 2번째를 기준으로 정렬을 해라 라는 뜻이다.
0011 과 같은 입력을 받았을때 \[0, 0, 1, 1] 형태의 리스트로 저장하고 싶다면 위와 같이 하면된다.
음수를 양수로 나누기 파이썬에서 음수를 양수로 나눌 때, 음수를 양수로 바꾼후 연산을 수행하고, 연산 결과에 다시 음수를 붙이는 과정으로 진행된다. (이는 C++14의 기준과 동일하다)
N번째 원소를 중심으로 정렬할 때 key 를 적절히 활용한다.
문자열 슬라이싱을 이용해서 문자열을 거꾸로 읽을 수 있다.