Hayden's Archive
[알고리즘] 프로그래머스 : 카펫 본문
알고리즘 문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/42842
내가 작성한 코드
아이디어)
- 갈색 개수와 노란색 개수는 가로와 세로를 곱한 값과 같다.
- (가로-2) * (세로-2) 는 노란색 개수와 같다.
import java.util.ArrayList;
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
ArrayList<Integer> list = new ArrayList<>();
int multiply = brown+yellow;
for(int i=2; i*i<=multiply; i++) {
if(multiply % i==0) list.add(i);
}
for(Integer l : list) {
int h = (int)l;
int w = multiply/h;
if((w-2)*(h-2)==yellow) {
answer[0] = w;
answer[1] = h;
break;
}
}
return answer;
}
}