첫 번째 문제에서 테스트케이스의 일부분이 실패하길래 디버깅하다가 1시간을 쓴 것 같다.. (0이 들어오진 않고, 로직은 맞았으나 형 변환을 하지 않아서 틀렸다.) - 19/11/16 많이 아쉬웠던 건 모든 문제에 대해서 접근 방법과 구현 방법이 떠올랐는데, 제대로 된 정답을 내지 못한 것이다. 대체로 요번 윈터코딩에서는 규칙성을 찾는 문제 위주로 나온 것 같다. 2번 문제는 정답이지만, 1번 부분점수 상태에서 디버깅 하다가 3번을 제대로 못풀고.. 그래서 아쉬운 대로 내가 풀었던 방법을 적어놓고자 한다. (현재 모든 문제 해결하였습니다.) #1 멀쩡한 사각형 N x M 격자판에 양 꼭짓점으로 대각선을 하나 그었을 때, 직선에 걸치는 사각형을 전체 사각형의 개수에서 빼는 문제이다. 격자의 최소 단위는 1 x 1로 이루어져 있고, w와 h가 주어진다. (범위는 1억까지) 규칙을 찾다가, 정사각형일 때와 아닐 때 를 생각해보았다. 정사각형인 N x N 형태이면, 대각선으로만 걸치므로 w * w - w를 하면 된다. 정사각형이 아닌 N x M 형태이면, 선에 걸치는 사각형들이 오른쪽 또는 아래를 걸쳐서 선을 타고 내려오는 모습이 된다. (그림 참조) 3x3 사각형과 8x12 사각형 대각선이 아닌 오른쪽 또는 아래로만 거쳐서 선에 걸치는 사각형만 있으면 생각하기 쉽다. 그러나, 문제에서 주어진 예제 테스트케이스로 w=8, h=12를 생각해보면 중간마다 정사각형일 때 처럼, 대각선으로 걸치는 경우도 있다. 이 경우가 언제인지를 생각해보자. 그림에서 보면 정확히 2 x 3지점에서 대각선으로 걸치고 있다. 그리고 전체가 2 x 3인 사각형들을 4번 대각선으로 붙인 모습이다. 여기서 생각해볼 수 있는 건 이 2 x 3이 현재 전체 사각형들이 대각선으로 걸치는 최소 단위라는 것이다. 직선이므로, 내부에 존재하는 부분 직선도 ...
댓글
댓글 쓰기