[JAVA 문제 풀이] 261. 카펫

프로그래머스 (42842)
Stupefyee's avatar
May 16, 2025
[JAVA 문제 풀이] 261. 카펫
notion image
notion image
 

내가 작성한 코드

import java.util.*; class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; int total = brown + yellow; // 제곱근 이하의 약수만 확인 for (int i = 1; i <= Math.sqrt(total); i++) { if (total % i == 0) { int width = total / i; int height = i; // 내부 노란색 타일 개수 계산 -> -2하는 이유 -> 테두리 타일 제외 if ((width - 2) * (height - 2) == yellow) { answer[0] = width; answer[1] = height; break; } } } return answer; } }
 

다른 사람의 코드

class Solution { public int[] solution(int brown, int yellow) { int a = (brown + 4) / 2; // 가로 + 세로 int b = yellow + brown; // 총 타일의 수 // 근의 공식 활용 int[] answer = { (int) (a + Math.sqrt(a * a - 4 * b)) / 2, (int) (a - Math.sqrt(a * a - 4 * b)) / 2 }; return answer; } }
 
Share article

stupefyee