[1002번] 터렛
Algorithm/백준 문제 풀이

[1002번] 터렛

반응형

백준 1002번: 터렛

 

1002번: 터렛

각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다.

www.acmicpc.net

백준 홈페이지가 만들어지고 거의 처음에 나온 문제입니다.

정답률은 약 18%로 그리 높지 않군요. 제 생각에는 조건 처리의 miss나 데이터형의 문제 때문일 가능성이 높다고 생각됩니다.

 

고등학교 교육과정에서 배우는 두 원 사이의 위치 관계에 대해 다루고 있습니다.

즉 간단히 말해서 두 원이 만나는 교점의 개수를 세는 문제입니다.

두 원의 각각의 반지름과 두 원의 중심 사이의 거리를 구해서 그 관계를 따지면 됩니다.

(혹시 잊으셨을 분들을 위해 [여기]를 참고해주세요!)

 

제가 바로 맞춰서 추측에 불과하지만 예상되는 많이 틀린 이유 중 하나로 조건의 miss도 있겠지만,

그보다 왠지 데이터형의 문제가 더 클 것 같다는 생각이 듭니다.

그 이유는 두 중심 사이의 거리 $d$를 구하는 과정에서 sqrt() 함수를 사용해 double형 값을 구하고, 이전 포스팅에서도 설명했지만 이후 조건문 비교에서 부동소수점 차이 때문에 잘못 판단되었을 가능성이 있기 때문입니다.

저는 그래서 그렇게 하지 않고 그 거리들을 모두 제곱한 상태에서 비교를 해서 정수 차원에서 비교될 수 있게 해 줬습니다.

 

아무튼 수학적 능력 또한 '생활 속 문제'를 푸는 데에는 필수적이므로 꼭 익혀두도록 합시다!!

 

[소스 보기]

반응형