
내가 생각했을때 문제에서 원하는부분
머쓱이는 큰 종이를 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;
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.