JAVA/프로그래머스 코딩테스트 입문

[프로그래머스 LV.0] 종이 자르기

sundori 2024. 12. 12. 06:52

목차

    문제 설명

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

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


     

    제한사항

    • 0 < M, N < 100
    • 종이를 겹쳐서 자를 수 없습니다.
    M N result
    2 2 3
    2 5 9
    1 1 0
    class Solution {
        public int solution(int M, int N) {
            return M * N - 1;
        }
    }

     

    M x N 종이를 완전히 1 x 1로 만들기 위해 필요한 가위질 횟수는 다음과 같이 계산:

    • 종이를 (M * N)개의 1 x 1 조각으로 나눠야 하므로 최소 (M * N - 1)번의 가위질이 필요.
    • 예) 2 x 2 종이는 4개의 조각으로 나뉘고, 3번의 자르기가 필요.

     

    • M * N - 1 공식 적용:
      • M * N은 최종적으로 필요한 조각 수.
      • -1은 초기 종이(한 덩어리)는 자를 필요가 없기 때문.
    • 제약 조건 처리:
      • 0 < M, N < 100이므로 유효한 입력만 들어온다고 가정.
      • 별도의 검증 코드 없이 간결하게 작성.

     

    728x90