[プログラマー]カーペット

6183 ワード

カーペットの大きさを計算できる式は 全横長=イエローカーペットの横長+2(上+下) 全長=イエローカーペットの縦+2(左+右) 総格子数黄色カーペット横x 2+黄色カーペット縦x 2+4(辺) 黄色の個数で計算された合計セルから4を減算します。 brownと一致するかどうかを決定し、カーペット全体の横、縦の長さを求めます。 function solution(brown, yellow) { var answer = [] debugger 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 } solution(24,24)

入出力例3のエンクロージャ


//  i가 12일 경우 
yellow_H = 12 // i
yellow_V = 2  // yellow / i

if(brown === ( 2 * yellow_H) + ( 2 * yellow_V) + 4 )

brown(24) === (2 * 12) + ( 2 * 2 ) +  4 // false (32)
//  i가 8일 경우 
yellow_H = 8 
yellow_V = 3  // yellow / i

if(brown === ( 2 * yellow_H) + ( 2 * yellow_V) + 4 )
  
brown(24) === (2 * 8) + ( 2 * 3) +  4 // false (26)
//  i가 6일 경우 
yellow_H = 6 (i)
yellow_V = 4  // yellow / i

if(brown === ( 2 * yellow_H) + ( 2 * yellow_V) + 4 )

brown(24) === (2 * 6) + ( 2 * 4) +  4 // true (24)
問題には明確なルールがあり、
最初はルールが見つからず、解けにくい.
検索後、他人の解答を見たり、絵を描いたりすることでルールを知ることができます.
注意:
https://velog.io/@rud285/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%B9%B4%ED%8E%AB-javascript