-코드
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문에 넣어서 해결을 하는 것을 보고 작성해보니 좀 더 쉽게 풀렸습니다. 좀 더 이분 탐색 문제를 풀어봐야 할 것 같습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 11478번 서로 다른 부분 문자열의 개수 (0) | 2022.01.07 |
---|---|
[백준/파이썬] 2428번 오르막길 (0) | 2022.01.07 |
[백준/파이썬] 10448번 유레카 이론 (0) | 2022.01.06 |
[백준/파이썬] 15702번 중간고사 채점 (0) | 2022.01.05 |
[백준/파이썬] 5218번 알파벳 거리 (0) | 2022.01.05 |