Languages/Python

Languages/Python

join이 for 보다 빠르다 (제공되는 메서드를 최대한 사용하자)

join이 for 보다 빠르다 파이썬 메서드로 제공되는 기능들은 코더의 편의성도 있지만, 대부분 자료구조 내에서 최적화를 거치기 때문에 직접 구현하는 것보다 빠릅니다. A = ['1','2','3','4'] use_for = '' for a in A : use_for += a use_join = ''.join(A) for += 을 사용하면 A의 원소들을 a로 할당하면서 객체가 생성되고 처리 과정이 늘어납니다. join을 사용하면 더 최적화된 과정이 수행된다고 하네요. split, heappushpop 등등 마찬가지 입니다. 제공되는 메서드를 잘 알고 최대한 활용해주는게 좋습니다.

Languages/Python

[setrecursionlimit] 재귀 깊이 증가시키기

파이썬의 경우 재귀 최대 깊이가 1000 으로 설정되어 있습니다. 더 깊은 재귀를 실행하기 위해서는 최대 깊이를 바꿔줄 필요가 있습니다. 다음 코드로 설정할 수 있습니다. import sys sys.setrecursionlimit(10000) # 원하는 깊이

Languages/Python

[round] 파이썬 round 의 특이한 .5 처리법

백준 문제를 풀다가 생각치 못한 round 의 방식을 알게 되었는데요, 18110번: solved.ac 5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다. www.acmicpc.net round 를 일반적으로 생각하는 사사오입 반올림 으로 알고있었는데, 약간 다른 지점이 있었습니다. round(0.5) # 0 round(1.5) # 2 round(2.5) # 2 round(3.5) # 4 round(4.5) # 4 round(2.5) 와 round(4.5) 에서 3, 5 가 아닌 2, 4의 결과가 나옵니다. 부동 소수점 때문인가 싶어 검색해보니,..

Languages/Python

[sort] 파이썬에서 커스텀한 기준으로 이터러블한 객체 정렬하기

key 파이썬에서 제공하는 sorted 기능은 key 파라미터로 커스텀한 기준을 부여하여 정렬할 수 있습니다. 파이썬 sort 관련 독스에서도 이를 확인할 수 있습니다. https://docs.python.org/ko/3/howto/sorting.html#key-functions "key 매개 변수의 값은 단일 인자를 취하고 정렬 목적으로 사용할 키를 반환하는 함수(또는 다른 콜러블)여야 합니다." 다시 말해 key 파라미터에는 정렬하려는 원본 원소가 들어갔을 때 정렬용 기준값을 뱉어주는 함수를 넘겨주면 된다는 것입니다. 예를 들어 아래 튜플을 나이순으로 정렬하고 싶다고 해보겠습니다. student_tuples = [ ('john', 'A', 15), ('jane', 'B', 12), ('dave', '..

jamong5
'Languages/Python' 카테고리의 글 목록 (2 Page)