[TIL] - 2022-06-09

유현민·2022년 6월 11일
0

TIL

목록 보기
33/38

1. python 이분탐색

import bisect

bisect_left(a, x)

  • 정렬된 a에 x를 삽입할 위치를 리턴해준다. x가 a에 이미 있으면 기존 항목의 앞의 위치를 반환
  • 이상값 구할 때 전체 길이에서 bisect_left 값을 빼주면 가능

bisect_right(a, x)

  • x가 a에 이미 있으면 기존 항목 뒤의 위치를 반환
  • 이하값 구할 때 전체 길이에서 bisect_right값을 빼주면 된다.

2. 내 맘대로 정렬하기

  • cmp_to_key
import functools

def comparator(a,b):
    t1 = a+b
    t2 = b+a
    return (int(t1) > int(t2)) - (int(t1) < int(t2)) #  t1이 크다면 1  // t2가 크다면 -1  //  같으면 0

def solution(numbers):
    n = [str(x) for x in numbers]
    n = sorted(n, key=functools.cmp_to_key(comparator),reverse=True)
    answer = str(int(''.join(n)))
    return answer
  • 비교 함수를 만들어서 1이 나오면 큰거로, -1은 작다, 0은 같다로 만든다.
  • 함수안에 어떻게 비교할지만 바꿔주면 내 마음대로 정렬이 가능하다.
  • 문자는 아스키로 바꿔서 비교한다.
profile
smilegate

0개의 댓글