본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 2428번 표절

by 현장 2022. 1. 6.

-코드

n = int(input())
p = sorted(list(map(float, input().split())))
result = 0
for i in range(n):
    start, end = i, n - 1
    while start <= end:
        mid = (start + end) // 2
        if p[i] >= p[mid] * 0.9:
            start = mid + 1
        else:
            end = mid - 1
    result += start - i - 1
print(result)

처음에는 이분 탐색 함수를 정의하여 풀려고 했으나 출력이 제대로 나오지 않아서 1시간 고민하다가 찾아보니 함수를 만들지 않고 직접 for문에 넣어서 해결을 하는 것을 보고 작성해보니 좀 더 쉽게 풀렸습니다. 좀 더 이분 탐색 문제를 풀어봐야 할 것 같습니다.