-
728x90
문제 설명
머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다.
정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.제한 사항
- 0 < M, N < 100
- 종이를 겹쳐서 자를 수 없습니다.
입출력 예
M N result 2 2 3 2 5 9 1 1 0 답안
class Solution { public int solution(int M, int N) { int answer = 0; answer = M!=1? M-1 : 0; answer += N!=1? (N-1)*M:0; return answer; } }
먼저 삼항연산자를 이용해서 1이 아닐 때만 값이 들어가도록 했다.
종이자르기에는 큰 공식이 있는데 바로 길이-1 번으로 잘라야 1x1 크기가 나온다는 것!
대신 N은 M이 1x1 크기로 잘렸기 때문에 M의 길이만큼 N이 여러장 있다는 것을 알고 있어야 한다.
그래서 N-1번에 M개가 반복되기 때문에 M을 곱해준다.
class Solution { public int solution(int M, int N) { int answer = 0; answer = M*N-1; return answer; } }
이렇게 공식으로 풀어도 깔끔하게 풀 수 있다.
728x90'algorithm' 카테고리의 다른 글
자바 알고리즘 - 7의 개수 (0) 2023.08.29 자바 알고리즘 - 잘라서 배열로 저장하기 (0) 2023.08.29 자바 알고리즘 - 연속된 수의 합 (1) 2023.08.28 자바 알고리즘 - 다음에 올 숫자 (0) 2023.08.28 자바 알고리즘 - 등차수열의 특정한 항만 더하기 (0) 2023.08.25