[프로그래머스] 카펫(Java)

수경·2023년 3월 16일
0

problem solving

목록 보기
121/174

프로그래머스 - 카펫

풀이

  1. sum = brown 타일의 수 + yellow 타일의 수
  2. 가로 * 세로 = sum 인 경우의 수를 계산
  3. yellow 타일이 brown 타일로 감싸진 직사각형(or 정사각형)이기 때문에 yellow 타일의 수가 주어졌을 때 만들어질 수 있는 사각형이 한정되어 있음
  4. for문에서 i를 증가시키면서 (i+2) * (yellow/i+2) = sum 인 경우를 찾음

코드

class Solution {
    public int[] solution(int brown, int yellow) {
        int sum = brown + yellow;
		int[] result = new int[2];

		for (int i = 1; i <= yellow / i; i++) {
			if (yellow % i == 0) {
				if ((i + 2) * (yellow / i + 2) == sum) {
					result[0] = yellow / i + 2;
					result[1] = i + 2;
					break;
				}
			}
		}
		return result;
    }
}
profile
어쩌다보니 tmi뿐인 블로그😎

0개의 댓글