[프로그래머스] Lv2 카펫

changi123·2023년 8월 23일
0
post-thumbnail

문제설명

코드

import java.util.*;
class Solution {
    public int[] solution(int brown, int yellow) {
	int[] answer = new int[2];

		int sum = yellow+ brown;
		
		for(int i = 3; i<=sum/2 ;i++) {
			int h = sum / i ;
			if( (h-2) * (i-2) == yellow) {
				answer [0] = h;
				answer[1] = i;
				break;
			}
		}
		return answer;
    }
}

내 코드 설명

(1) 가로와 높이는 무조건 3부터 가능하다. 양쪽으로 +1 씩 있기 때문에
(2) 이를 보장하기 위해 for 반복문의 조건을 sum / 2 로 해주었고 안쪽 타일의 가로 길이는 sum / 세로이기 때문에 반복중 ( 가로의 길이 -2 ) * (세로의 길이 -2) == (안쪽타일의넓이) 라면 그때의 가로와 세로가 답일것이다.

느낀점

Lv2부터는 확실히 간단한 수학적 사고가 필요하다는 것을 느꼈다.. 직접 써보고 계산해보는 습관을 기르자!

profile
개발자 홍찬기 꾸준한 사람이 되자

0개의 댓글

관련 채용 정보