출처 : 백준 온라인저지 - 1004번: 어린왕자
로직을 구하기 전에 먼저 점과 점 사이의 거리 공식을 알아야 한다.
좌표평면 위의 두 점 A(x, y), B(x1, y1) 가 존재한다고 할 때, 이 두 점 사이의 거리 d 는 아래와 같은 공식을 사용하여 구할 수 있다.
- 입력값에서 가장 첫 번째로 오는 테스트 케이스의 갯수 T 값을 구한다.
- 나머지 input값 데이터에서 가장 처음 오는 데이터는 좌표 값이므로 coordinate 값에 할당하고
- 각 테스트케이스에 주어지는 행성의 갯수를 n 값에 할당한다.
- 주어진 행성의 갯수만큼 테스트를 진행하기 위해 배열을 0부터 n까지 잘라내고
- 원의 중점과 출발점, 도착점의 각 거리를 구하고 그 결과값을 비교한다.
- 중점과 각 점의 거리가 원의 반지름보다 크거나 같다면 true, 다르면 false가 출력된다.
- 둘 다 값이 true 라면 출발점과 도착점 모두 원의 바깥에 위치하고, false 라면 원의 내부에 위치하므로 원을 지나지 않아도 된다.
- 두 값이 달라야만 출발점과 도착점을 지나는 선이 원을 지나므로 count++
- 테스트가 끝나면 count 값을 출력하고 다음 테스트 케이스가 존재한다면 T 값이 아직 양수이므로 T 값이 0이 될 때까지 위 로직이 반복 된다.
'알고리즘' 카테고리의 다른 글
프로그래머스 JS | 2 x n 타일링 ( feat.시간초과 ) (0) | 2023.04.29 |
---|---|
프로그래머스 JS | 인사고과 (0) | 2023.01.20 |
백준 JS | 재귀의 귀재 (0) | 2022.12.29 |
백준 JS | 좌표 압축 (0) | 2022.12.26 |
프로그래머스 JS | 다리를 지나는 트럭 (0) | 2022.11.12 |