알고리즘/프로그래머스
(LEVEL 2)프로그래머스 - 카펫(JAVA)
꾸준함
2023. 2. 9. 23:02
문제
입출력 예
풀이.
1. 노란색 격자가 가운데 있으려면 가로, 세로가 최소 3이상이어야 한다. ( i = 3부터 시작)
2. 3부터 시작하며 brown + yellow(sum) 의 약수를 구한다.
3. 약수이면서 3이상 일때, 각 가로, 세로의 -2 씩 한 값이 yellow랑 같을 때 answer에 넣어준다.
코드
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
int sum = brown+yellow;
for(int i=3;i<sum;i++){
int j = sum / i;
if(sum % i == 0 && j>=3){
int col = Math.max(i,j);
int row = Math.min(i,j);
int center = (col-2) * (row-2);
if(center == yellow){
answer[0] = col;
answer[1] = row;
return answer;
}
}
}
return answer;
}
}