문제풀이의 컨셉은 비슷했으나 규칙을 잘못 파악했다.
https://programmers.co.kr/learn/courses/30/lessons/42842
문제풀이의 컨셉은 비슷했으나 규칙을 잘못 파악했다.
전체 가로길이 = 중앙카펫의 가로+2
전체 세로길이 = 중앙카펫의 세로+2 이다.
그러면 중앙카펫의 가로, 세로길이를 구하면 전체 가로,세로길이를 구할 수 있게 된다.
중앙카펫은 모서리카펫과 아래의 관계를 갖고 있다.
모서리카펫 = 중앙카펫가로x2+중앙카펫세로x2+4
중앙카펫의 갯수를 기준으로 직사각형이 될 수 있는 후보를 반복해서 만들면서
후보가 되는 숫자가 모서리카펫과의 관계를 만족하면 중앙카펫의 가로, 세로 길이를 가지고 전체 가로, 세로길이를 구한다.
function solution(brown, yellow) {
var answer = []
for (let i = yellow; i >= 1; i--) {
if (yellow % i === 0) {
let yellow_H = i
let yellow_V = yellow / i
if (brown === 2 * yellow_H + 2 * yellow_V + 4) {
answer = [yellow_H + 2, yellow_V + 2]
break
}
}
}
return answer
}
전체 가로길이 = 중앙카펫의 가로+2
전체 세로길이 = 중앙카펫의 세로+2 이다.
그러면 중앙카펫의 가로, 세로길이를 구하면 전체 가로,세로길이를 구할 수 있게 된다.
중앙카펫은 모서리카펫과 아래의 관계를 갖고 있다.
모서리카펫 = 중앙카펫가로x2+중앙카펫세로x2+4
중앙카펫의 갯수를 기준으로 직사각형이 될 수 있는 후보를 반복해서 만들면서
후보가 되는 숫자가 모서리카펫과의 관계를 만족하면 중앙카펫의 가로, 세로 길이를 가지고 전체 가로, 세로길이를 구한다.
function solution(brown, yellow) {
var answer = []
for (let i = yellow; i >= 1; i--) {
if (yellow % i === 0) {
let yellow_W = i
let yellow_H = yellow / i
if (brown === 2 * yellow_W + 2 * yellow_H + 4) {
answer = [yellow_W + 2, yellow_H + 2]
break
}
}
}
return answer
}