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 등등 마찬가지 입니다. 제공되는 메서드를 잘 알고 최대한 활용해주는게 좋습니다.
백준 문제를 풀다가 생각치 못한 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의 결과가 나옵니다. 부동 소수점 때문인가 싶어 검색해보니,..
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', '..