[프로그래머스] 종이자르기 파이썬

xianxbabx·2023년 3월 20일
0

알고리즘

목록 보기
10/14

문제 설명

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

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

제한사항

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

입출력 예

MNresult
223
259
110

입출력 예 설명

입출력 예 #1

  • 본문과 동일합니다.

입출력 예 #2

  • 가로 2 세로 5인 종이는 가로로 1번 세로로 8번 총 가위질 9번이 필요합니다.

입출력 예 #3

  • 이미 1 * 1 크기이므로 0을 return 합니다.

나의 코드

def solution(M, N):
    answer = (M-1)+M*(N-1)
    if M and N == 1:
        answer = 0    
    return answer

해석

가로 M을 1칸씩 만들기 위해서는 M-1번 잘라야 한다는 사실을 알게 되었습니다. 또한 세로 N도 마찬가지로 N-1번 잘라야 하지만, 가로 길이를 곱해야 하기 때문에 가로 (M-1)번 + 세로 M*(N-1)로 구현하였습니다.
또한 가로 M, 세로 N이 이미 1, 1인 경우는 0을 return해야한다는 조건도 정의해주었습니다.

0개의 댓글