노란 바탕에 갈색 테두리를 가진 카펫의 사이즈(격자수) 구하기
규칙
- 중앙에는 노란색으로 칠해져 있고, 테두리 1줄은 갈색으로 칠해져있는 격자모양 카펫
제한사항
- 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다.
- 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다.
- 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다.
나의 풀이
- 노란색 카펫의 사이즈만 결정되면, 갈색사이즈는 쉽게 구할 수 있음
- 노란색 카펫의 격자수(x, y) -> 갈색 테두리 (x*2 + y*2 + 4; 여기서 4=모서리값)
- x(가로)를 1부터 하나씩 증가시키며 yellow/x (y;세로) 값과 비교
- 가로길이가 세로길이와 같거나 큰 경우, 예상되는 갈색테두리 사이즈(tmp)를 계산
- tmp와 brown 값이 같으면 정답 리턴
function solution(brown, yellow) {
var answer = [0,0];
var outline = 4;
for(x=1; x<= yellow; x++) {
var y = yellow/x;
if (x >= y) {
const tmp = x*2 + y*2 + outline;
if (brown === tmp) {
answer = [x+2, y+2];
return answer;
}
}
}
return answer;
}
결과