3개의 댓글이 있습니다.
-
-
Taeyoon_Lee -
음.. =_=저는 그냥 double로 풀었는데.. 그러면 안 되는 경우가 있을까요..;
17년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
음.. =_=저는 그냥 double로 풀었는데.. 그러면 안 되는 경우가 있을까요..;
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
legend12
이 문제는 nhn 특별상이 걸려있었던 문제로, 문제 설명에 nhn 이 도배(?)되어있는것으로 미루어 짐작할 수 있었습니다. -0-
문제를 간단히 설명하면,
"n ( 1 <= n <= 100,000) 개의 혜성이 (xi, yi) 라는 좌표로 부터 단위시간당 (dxi, dyi) 라는 속도로 움직일때, 특정시간에 (0,0)-(w,h) 의 직사각형 프레임안에 동시에 들어가는 최대 혜성의 갯수를 찾는문제"
라고 할 수 있습니다. 이 때, 혜성이 프레임 안에 들어가는 것은 프레임 외곽선에 걸치지 않고 완전히 포함되는 경우를 말합니다.
이 문제는 O(nlgn) 의 시간복잡도로 해결이 가능합니다.
먼저 각 혜성에 대하여 프레임 내에서 머무는 시간을 구하여, 진입시간과 이탈시간을 찾습니다. 이때 구해지는 시간들은 모두 프레임 외곽선과 만나는 시간을 기준으로 하기 때문에, 혜성의 초기위치가 프레임 안에 완전히 포함되는 경우는 진입시간을 0 이 아닌 음수 시간으로 고려해야합니다. 이렇게 구한 값들을 시간에 대하여 정렬한 후, 순차적으로 혜성의 진입때는 +1, 이탈때는 -1 을 하면서 음수가 아닌 시간대에 머무는 최대의 혜성 갯수를 구해주면 문제에서 원하는 답을 구할 수 있습니다.
17년 전