문제 : boj2163
쪼갠걸 겹쳐서 자를 수 없으므로, 결국 한땀한땀 자를 수 밖에 없다. 그럼 n x m 조각에 대해 n을 높이, m을 너비라고 생각해보자.
이걸 우선 가로방향으로 n개로 쪼개보자. 이 경우 n-1번 쪼개면 된다. 그리고 그 중 한 개만 세로방향으로 쪼개보자. m-1번 쪼개면 된다. 그런데, m-1번 쪼갠게 처음 n-1번 쪼갠 n개의 조각 하나이므로 총 n개의 조각을 m-1번 쪼개야 한다.
따라서 처음에 가로로 쪼갠 경우, 답은 n-1 + n(m-1) 이 된다.
그럼 처음에 세로로 쪼갠 경우는 어떻게 될까? m-1 + m(n-1)이 된다.
근데 둘다 식을 풀어보면 전자는 n-1+nm-n = nm-1
후자는 m-1+mn-m = nm-1 이다.
따라서 어느쪽을 먼저 자르더라도 nm-1이 답임을 알 수 있다.
코드 : github
n,m=map(int,input().split())
print(n*m-1)
'PS > BOJ' 카테고리의 다른 글
백준 4659 자바 - 비밀번호 발음하기 (boj 4659 java) (0) | 2022.04.08 |
---|---|
백준 2041 자바 - 숫자채우기 (boj 2041 java) (0) | 2022.04.07 |
백준 9613 자바 - GCD 합 (boj 9613 java) (0) | 2022.04.06 |
백준 1486 자바 - 등산 (boj 1486 java) (0) | 2022.04.05 |
백준 2749 자바 - 피보나치 수 3 (boj 2749 java) (0) | 2022.04.05 |
댓글