Javascript - 종이 자르기

이율곡·2023년 7월 8일

Programmers

목록 보기
26/44
post-thumbnail

종이 자르기

문제

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

이미지출처 : 프로그래머스

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

입출력 예

MNresult
223
259
110

접근방법

이 문제의 핵심은 가로와 세로에 대해 잘라야하는 횟수를 이해하는 것이다. 그렇기 때문에 따로 풀이에 순서가 있다기 보다는 문제를 이해하는 게 더욱 좋다.

이해하기

M x N 크기의 종이를 1 x 1 크기로 자르는 것은 사실상 M개의 1 x N 크기의 종이로 나누고, 그 다음 각각의 종이를 1 x 1 크기로 나누는 것과 같다. 따라서, 가로(M)를 1xN 종이로 자르기 위해 필요한 가위질의 수는 M-1이고, 세로(N)를 1x1 종이로 자르기 위해 필요한 가위질의 수는 (M)(N-1)가 된다.

풀이

function solution(M, N) {
    return (M-1) + (M)*(N-1);
}

정리하기

이번 문제를 이해하는 것은 어렵지 않았다. 그러나 정답률이 다른 Lv.0의 문제들에 비해 중간 난이도를 가진 이유는 복잡하게 생각했기 때문이지 않았나 싶다.

조금 더 직관적이고 다양한 접근방법을 생각하는 자세를 가져보자.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글