프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
def solution(M, N):
answer = (M * N) - 1
return answer
간단한 문제처럼 보이지만 규칙을 찾아야 한다.
직접 그림을 그려 규칙을 찾아보았다.
가로를 M, 세로를 N이라 할 때, 가로 M을 먼저 자른다고 해보자.

그럼 가로는 M-1번 자르면 모든 가로 길이가 1이 된다.
그 결과, 가로가 1, 세로가 N인 직사각형이 M개 생긴다.
그럼 이제 이 직사각형들의 세로 길이를 1로 만들어줄 차례이다.
세로를 N-1번 자르면 모든 세로 길이가 1이 된다.
N-1번 자를 직사각형이 M개 있다.
이 과정을 식으로 나타내면 (M-1) + M * (N-1)이 되고 식을 정리하면 MN - 1이 된다.