지도, 출발점, 도착점이 주어질 때 최대한 행성계를 덜 지나게 가는 경로의 행성계 진입/이탈 횟수를 출력하는 문제다.
일단 지금 드는 생각은 경로는 곡선이기 때문에, 출발점과 도착점을 안에 두는 행성계의 갯수를 출력하면 될꺼같다. (포함하는 행성계는 피하지 못하고 출입할 수 밖에 없기 때문) 또한, 행성계끼리 닿거나, 교차하지도 않고, 점이 경계에 걸쳐지지도 않았기에 일단은 이 생각대로 하면 될 거 같다.
구체적으로 하자면, 지나가야만 하는 행성계의 조건은 a를 출발점, b를 도착점이라 하고 행성중심을 c, 반지름을 r이라 할 때
1. a와 c사이의 거리 < r < c와 b와의 거리 (출발점은 행성계 안에, 도착점은 행성계 밖에 있다)
2. a와 c사이의 거리 > r > c와 b와의 거리 (출발점은 행성계 밖에, 도착점은 행성계 안에 있다)
이 두 경우 뿐이라고 생각한다.
그럼 모든 행성계에 대해 이 관계를 만족하는지 검사하고, 만족하면 행성계 진입/이탈 횟수를 1씩 늘리면 되겠다.
실행을 해보니
잘 된다. 그럼 제출을 해보자.
????????? 왜죠
저걸 해결하려면 try-catch문을 쓰라고 하긴 하던데.. 그걸 해봤자 별 효용은 없을거같고, 다른 사람은 어떻게 풀었나 보았다.
논리는 나랑 같다. 즉, 내 코드가 논리적으로는 틀리진 않았다는 것.
틀린 부분을 찾아냈다.
시행횟수 동안 출발점 도착점을 받아야 하는데 출발점 도착점을 한번만 밖에 해버렸던 것;;;;
이 코드를 제출해보았다.
맞았다.
느낀점:
1. 코드 짤때 잘 보고 짜자...
2. 앞서 푼 다른 문제와 다르게 이문제는 검색을 해도 나오는 것이 적었다. 왜지?
'코테용 문제풀이 > 백준' 카테고리의 다른 글
X보다 작은 수 풀이 (0) | 2022.12.30 |
---|---|
별 찍기 - 1 풀이 (0) | 2022.12.30 |
백준 1009번 문제 분산처리 c#으로 풀기 (0) | 2019.06.08 |
백준 1003번 문제 피보나치 함수 c#으로 풀기 (0) | 2019.06.07 |
백준 1002번 문제 터렛 c#으로 풀기 (0) | 2019.06.04 |