코딩 테스트
(Java) 프로그래머스 카펫
로승리
2022. 1. 16. 23:17
문제를 보고 어떻게 풀어야 할지 한참을 생각했다.
해결방법은 떠오르는데 코드로 옮기지를 못해서 너무 스트레스를 받았다.
검색을 통해 힌트를 얻었는데 고민하던 부분을 continue로 해결하는 것을 보고 좀 허무하고 반성이 되었다.
최종 코드
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
int total = brown + yellow;
for (int i = 1; i <= total; i++) {
// 세로 길이
int row = i;
// 가로 길이
int col = total / row;
// 가로 길이가 세로 길이와 같거나 세로보다 길기 떄문에
if(row > col) {
continue;
}
// 가로 - 2 * 세로 - 2 가 노란색 개수이므로
if((row - 2) * (col - 2) == yellow) {
answer[0] = col;
answer[1] = row;
return answer;
}
}
return answer;
}
}