종이 자르기
문제
머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다.

이미지출처 : 프로그래머스
정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.
입출력 예
접근방법
이 문제의 핵심은 가로와 세로에 대해 잘라야하는 횟수를 이해하는 것이다. 그렇기 때문에 따로 풀이에 순서가 있다기 보다는 문제를 이해하는 게 더욱 좋다.
이해하기
M x N 크기의 종이를 1 x 1 크기로 자르는 것은 사실상 M개의 1 x N 크기의 종이로 나누고, 그 다음 각각의 종이를 1 x 1 크기로 나누는 것과 같다. 따라서, 가로(M)를 1xN 종이로 자르기 위해 필요한 가위질의 수는 M-1이고, 세로(N)를 1x1 종이로 자르기 위해 필요한 가위질의 수는 (M)(N-1)가 된다.
풀이
function solution(M, N) {
return (M-1) + (M)*(N-1);
}
정리하기
이번 문제를 이해하는 것은 어렵지 않았다. 그러나 정답률이 다른 Lv.0의 문제들에 비해 중간 난이도를 가진 이유는 복잡하게 생각했기 때문이지 않았나 싶다.
조금 더 직관적이고 다양한 접근방법을 생각하는 자세를 가져보자.