본문 바로가기

혼자 코딩 공부하기/프로그래머스 코딩테스트

프로그래머스 종이 자르기

문제 설명

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


정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를
최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.

 

제한 사항

0 < M, N < 100
종이를 겹쳐서 자를 수 없습니다.

 

입출력 예


문제 풀이

 

종이를 자르는 경우의 수는 종이의 크기 - 1 의 가위질 횟수를 통해 길이가 1 인 종이를 만들 수 있음

3 x 4 의 종이가 있을 경우 2번의 가위질을 통해 1 x 4 종이를 3개 만들 수 있으며

각 종이를 3번 씩 총 9번의 가위질을 하여 1 x 1 종이 12개를 만들 수 있음

 

최종 가위질 횟수는 2번 +  9번 = 11번의 가위질

class Solution {
    public int solution(int M, int N) {
        int answer = 0;
        answer += M - 1;
        answer += M * (N - 1);
        return answer;
    }
}