문제 설명
머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다.
정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.
제한사항
- 0 < M, N < 100
- 종이를 겹쳐서 자를 수 없습니다.
풀이
const solution = (M, N) => (M*N)-1;
주어진 가로, 세로가 M, N이니까 가로부터 길게 쭉쭉 자른다고 치면,
M - 1 번의 가위질이 필요하다. 그렇게 해서 나온 M개의 종이에 N-1 만큼의 가위질을 해야한다.
즉 가로로 자르는 가위질의 수 : M-1
세로로 자르는 가위질의 수 : M*(N-1)
위 두 수식을 합쳐보면 M - 1 + M*N - M 이렇게 되고, 제거할 수 있는 항을 제거 해 보면,
(M*N) - 1이 나온다.
물론 사실 그냥 예시 결과 보니까 M이랑 N 곱한거에서 1뺀게 다 result 길레 풀땐 그렇게 풀고
포스팅 할땐 머리 굴려서 풀이를 써봤다.