- 주어진 문제에 따라 직사각형의 가로, 세로 길이를 계산하는 코드를 구현해야 한다.
- 가로 및 세로의 최소 길이는 3이며, 입력 값인 brown과 yellow 값을 더한 값과 가로와 세로를 곱한 값이 일치해야 한다.
- brown + yellow == width * height
- [코드 1] 처음 작성한 코드 답안
import java.util.*; class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; int area = brown + yellow; for (int x = 3; x < (int)(area/3); x++) { if (area%x != 0) { continue; } int y = area/x; if (brown != (x*2 + (y-2)*2)) { continue; } answer[0] = y; answer[1] = x; break; } return answer; } }
- 하지만, 아래의 [결과 1]에서처럼 오류가 발생하였다.
- [결과 1]
- 기존 [코드 1]에서, 가로와 세로의 길이가 모두 3인 상황을 가정할 때, 반복문의 조건부에서는 x < 3일 때까지만 반복문이 실행되므로 결과적으로 한 번도 반복문이 실행되지 않게 된다.
[코드 2] 수정한 코드
- [결과 2]