PS/BOJ

[Python] 20551번 Sort 마스터 배지훈의 후계자

s_omi 2024. 8. 21. 08:22
728x90
반응형
SMALL

✏️ 문제



 

문제 파악

이분 탐색을 사용해서 풀어야 하는 전형적인 문제! 값이 같으면 해당 인덱스를 바로 출력하는 방식으로 코드를 짜면 된다.

 

알고리즘

  • 자료 구조
  • 정렬
  • 이분 탐색

 

 

코드

import sys
input = sys.stdin.readline

n, m = map(int, input().split())
a = [int(input()) for i in range(n)]
a.sort()

for i in range(m):
  num = int(input())
  index = n

  start, end = 0, n-1
  while start <= end:
    mid = (start+end) // 2

    if a[mid] < num:
      start = mid + 1
    elif a[mid] == num:
      index = min(index, mid)
      end = mid - 1
    else:
      end = mid - 1

  print(-1 if index >= n else index)

 

 

 

 

 

 

728x90
반응형
LIST

'PS > BOJ' 카테고리의 다른 글

[Python] 1343번 폴리오미노  (0) 2024.08.24
[Python] 2468번 안전 영역  (0) 2024.08.21
[Python] 5014번 스타트링크  (0) 2024.08.20
[Python] 18352번 특정 거리의 도시 찾기  (0) 2024.08.20
[Python] 19939번 박 터뜨리기  (3) 2024.08.18