stjert   3년 전

아아... 한 10번정도 틀렸습니다를 받고 드디어 해냈습니다..

진짜 하루종일 해메이다가 겨우 풀었던 문제인데요, 몇몇 주의할점들 공유해봅니다.
특히, 7573번 (고기잡이) 문제의 풀이를 여기에 적용하려다가 겪은 실수들을 공유할게요.  

1. 각 꼭지점 좌표가 정수로 떨어지는지를 꼭 체크해보세요!

->  탐색 영역이 45도 기울어져있는 이 문제를 풀기위해 x,y -> x+y, x-y 좌표로 변환하고, 각 보석들의 변환된 좌표를 활용해 교차점에서 탐색하는 방법을 선택할수 있습니다.(저도 이방법을 선택했습니다) 이때 x+y=3, x-y= 8 이런 교차점을 선택해버리면, 나중에 다시 원래 좌표로 변환하는 과정에서 x가 정수로 떨어지지 않는 경우가 발생합니다.  처음에 이걸 거르지 않고 그대로 ((x+y)+(x-y))/2로 x좌표를 다시 원래좌표로 변환해서 엉뚱한 좌표를 출력해버리게 되었습니다. (int로 /연산을 하다 보니, 그냥 출력값이 정수가 나와 눈치채기 힘들었습니다)  따라서 이런 경우들은 진작에 걸러버려야 겠지요!

2. 대각선의 중심이 지도 안에 들어가는지 꼭 확인해보세요!

-> 고기잡이 풀이처럼, 각 꼭지점이나 변에 보석을 걸치는 풀이를 하다보면 나오게 되는 실수입니다. 고기잡이 문제 같은 경우, 그물이 지도밖으로 나가지는 경우를 통해 그물을 쳐서 최소값을 구해도, 그물을 평행이동 해서 지도 안으로 포함시킨 경우를 함께 센것으로 되기 때문에 (그리고 애초에 그물의 좌표를 묻지도 않기 때문에...) 정답처리가 됩니다.

하지만 이문제는 우리의 그물(사각형)의 좌표도 물어보지요... 아래 수정요청글에서 추가된 데이터를 보셔서 알겠지만, 이런 꼭지점/변 전략을 사용해버리면 사각형이 매우 큰 경우 지도 밖으로 사각형의 중심이 나가버리는 경우가 생기게 됩니다. 따라서 이 점 유념하고 문제 풀어보시면 좋을것 같네요!

queued_q   3년 전

도움이 됐습니다 감사합니다!!

댓글을 작성하려면 로그인해야 합니다.