[C#] 종이 자르기

Connected Brain·2025년 7월 10일

코딩 테스트

목록 보기
31/67

종이 자르기

문제 설명

종이를 1 x 1 크기로 자르려고 합니다.
예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다.
정수 M, N이 매개변수로 주어질 때,
M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.

풀이

public class CuttingPaper
{
    public int Solution(int M, int N) {
        int answer = 0;
        
        const int minSize = 1;

        if (M <= minSize && N <= minSize)
            return answer;

        answer = N - 1 + N * (M - 1);
        
        return answer;
    }

}
  • 한 쪽 면을 기준으로 설정하고 N을 기준으로 잘라 너비가 1이면서 높이가 M인 직사각형이 N개 만들어진다고 가정
  • 해당 N개의 직사각형들을 모두 M-1번 잘라야 최종적으로 1 * 1 크기의 정사각형을 만들 수 있음
  • 따라서 N을 기준으로 자르는 횟수 N-1회와 N개의 직사각형을 M-1번 자르는 횟수를 모두 합하여 정답을 구하는 공식을 만들 수 있음

0개의 댓글