[Programmers]-카펫
문제
중앙에 노란색, 테투리 한줄이 갈색인 카펫을 격자 수만 보고 만들어라.
코드
class Solution {
public int[] solution(int brown, int yellow) {
int[] answer = new int[2];
int x = 0;//노란색 가로
int y = 0;//노란색 세로
for(int i=0;i<=(yellow/2);i++){
x = (yellow)/(i+1);
y = i+1;
if(x>=y){//가로가 세로보다 크거나 같아야하는 조건
if((x+2)*(y+2)-(x*y)==brown) {
answer[0] = x+2;
answer[1] = y+2;
}
}
}
return answer;
}
}
코드 설명
for문으로 나올수있는 조합을 보고
(x+2)(y+2)는 노란색 다음 나올 전체 격자 수가 된다. 거기서 (xy)인 노란색 격자 수를 빼주면 테투리격자 수가 되는데. 테두리 격자와 브라운 색이 같을 경우 반환값에 넣어주면된다. 테두리가 한줄만 되어있는게 포인트라 쉬운 편이다.
요약
- 숫자계산이다.