이 문제는 이분탐색을 이용하여 새의 좌표가 사냥꾼 배열 arr=[1,4,6,9] 에서 잡을 수 있는 거리인지 확인하고 잡을 수 있으면 카운트하는 문제입니다.
우선 사냥꾼의 사정거리 L을 이용해서 사냥꾼이 새를 잡을 수 있는 범위를 구합니다. 사정거리의 범위는 L-Y(새의 Y좌표)를 X(새의 X좌표)에서 +, - 했을때가 범위입니다.
예를들어 첫번째 새의 경우 (7,2)니까 사정거리 4일경우 4-2의 값을 X값에 더하고 빼줍니다. 그러면 (5,2) ~ (9,2) 사이의 x좌표값에서는 해당 새를 잡을 수 있게됩니다. 이 부분을 활용해서 반복문으로 새를 호출해서 사냥꾼이 잡을 수 있는 새인지 아닌지 확인합니다.
이분 탐색과 반복문을 통해서 풀이한 코드입니다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 3190 뱀 [Python] (0) | 2023.04.18 |
---|---|
[백준]13334 철로 [Python] (0) | 2023.04.18 |
[백준]2110 공유기 설치 [Python] (0) | 2023.04.17 |
[백준]2468 안전영역 [Python] (1) | 2023.04.13 |
[백준]10819 차이를 최대로 [Python] (0) | 2023.04.12 |