sincheol / SW_Expert_A

0 stars 0 forks source link

#11285 다트게임 #27

Closed sincheol closed 1 year ago

sincheol commented 1 year ago

1~10점까지 받을 수 있고 N개의 화살을 던짐.. 꽂힌 다트는 좌표로 주어지고 중심에서부터 거리가 20 40 .. 200까지 200넘으면 0점

sincheol commented 1 year ago

처음에는 그냥 반지름 20 .. 200까지를 제곱해 비교하고 연산했음.. 또한 if문을 사용하다보니 0 0의 값을 예외처리를 해주는 것을 빼먹어서 틀림.. 추가하고 200 넘으면 0점을 받는 것도 완료했는데 테스트케이스를 하나도 풀지못함.. 아무리 생각해도 계산실수는 아닌 것 같아 출력문을 더빠른 stringbuilder를 사용해 출력.. 그래도 한문제도 못품..

sincheol commented 1 year ago

댓글을 하나하나 살펴보니 20으로 나눠 선처리를 하고 계산하는 아이디어를 봄.. 한 케이스에 화살의 개수가 1000000까지 이므로 제곱을 그대로 처리하는 것보다는 400으로 나누고 뭐해서 아무튼 작은 수로 계산하는게 좀 더 성능에 도움이 될 것같아서 사용... pass... 이 문제에서는 java에서 사용하는 메서드의 처리시간에 대해서 좀 더 알게 되었고 작은 수를 계산하는게 훨씬 빠르다..는 것을 뼈저리게 느낌..

sincheol commented 1 year ago

속도를 위해 메서드는 절대값을 계산해주는 메서드를 사용하는 것이 아닌 조건문으로 -1을 곱해 양수로 바꿔주는 것을 사용..