-
Programmers LV.2 카펫Programmers 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); } }
'Programmers' 카테고리의 다른 글
Programmers LV.3 네트워크 (0) 2020.12.31 Programmers LV.2 타겟넘버 (0) 2020.12.30 Programmers LV.1 모의고사 (0) 2020.12.30 Programmers LV.2 가장 큰 수 (0) 2020.12.29 Programmers LV.1 K번째수 (0) 2020.12.29