선분 위의 점 실버 3 (백준, 이진탐색)
2023. 2. 9. 14:19ㆍ코딩 테스트 준비
728x90
반응형
import sys
n, m = map(int, sys.stdin.readline().split())
dot = list(map(int, sys.stdin.readline().split()))
dot.sort()
def dot_min(a): # 선분 중 가장 작은 점 구하기
start = 0
end = n - 1
while start <= end:
mid = (start + end) // 2
if dot[mid] < a:
start = mid + 1
else:
end = mid - 1
return end + 1
def dot_max(b): # 선분 중 가장 큰 점 구하기
start = 0
end = n - 1
while start <= end:
mid = (start + end) // 2
if b < dot[mid]:
end = mid - 1
else:
start = mid + 1
return end
for i in range(m):
a, b = map(int, sys.stdin.readline().split())
print(dot_max(b) - dot_min(a) + 1)
728x90
반응형
'코딩 테스트 준비' 카테고리의 다른 글
구간 합 구하기 5 실버1 (백준, DP) (0) | 2023.02.10 |
---|---|
잃어버린 괄호 실버2 (백준, 그리기) (0) | 2023.02.10 |
블로그 실버3 (백준, 투포인터(슬라이딩 윈도우)) (0) | 2023.02.09 |
크로스워드 퍼즐 쳐다보기 실버2 (백준, 문자열) (0) | 2023.02.09 |
배열 돌리기 1 실버1 (백준, 구현) (0) | 2023.02.09 |