Programmers
Programmers LV.2 카펫
Developer Garam.Choi
2020. 12. 30. 14:33
수학적 접근을 해야한다
가로x세로 = 브라운 + 옐로우
옐로우 = 가로-2 * 세로-2
위 식 세우고, 포문 돌렸따.
더 쉽고 빠르게 가능할꺼같은데 머리가 아프다
@org.junit.Test
public void carpet(){
int brown = 14;
int yellow = 4;
// (가로x세로) = 브라운 + 옐로우
// 옐로우 1= 가로-2 * 세로-2 ( 옐로우의 면적이 2x2 )
// 옐로우 1 = 3x3
int[] answer = new int[2];
for(int x = 3; x<2000; x++ ){
for(int y=3; y<2000; y++){
if(((x-2)*(y-2)) == yellow && (x*y) == (brown+yellow)){
answer[0] = x;
answer[1] = y;
break;
}
}
}
for(int xy :answer){
System.out.println(xy);
}
}