프로그래머스 종이 자르기

KIMYEONGJUN·2일 전
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

내가 이 문제를 보고 생각해본 부분

main 메서드는 Java 프로그램의 시작점이다.
Main118 객체를 생성하고 solution 메서드를 호출하여 결과를 출력한다.
solution(int M, int N) 메서드는 M x N 크기의 종이를 1 x 1 크기로 자르기 위해 필요한 최소 가위질 횟수를 계산하는 로직을 포함한다.
핵심 수식 return M * N - 1;은 전체 조각 개수가 M 곱하기 N개라는 점을 이용했다.
처음 종이는 한 조각이므로 1개, 각 가위질로 조각 수가 1씩 증가한다.
따라서 조각을 M×N개로 만들려면 M×N−1번 가위질이 필요하다는 의미다.
main에서 세 개의 테스트 케이스를 실행해 각각 예상 결과를 출력한다:
2x2 종이에서 3번
2x5 종이에서 9번
1x1 종이에서 0번

코드로 구현

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

프로그래머스 코드

package programmers.programmers2;

// 프로그래머스 종이 자르기
public class Main118 {
    public static void main(String[] args) {
        Main118 sol = new Main118();

        // 예시 테스트
        System.out.println(sol.solution(2, 2)); // 예상 출력 3
        System.out.println(sol.solution(2, 5)); // 예상 출력 9
        System.out.println(sol.solution(1, 1)); // 예상 출력 0
    }

    public int solution(int M, int N) {
        return M * N - 1;
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글