[コケ]プログラマーはじゅうたんを完全に探求する
4077 ワード
質問する
Leoは家に帰ってから、さっき見たじゅうたんの黄色と茶色の格子数を覚えたが、じゅうたん全体の大きさは覚えていない.
Leoがこのカーペットに茶色の格子の数茶色、黄色の格子の数黄色をパラメータとして与えた場合、カーペットの横方向と縦方向の寸法を順番に並べて返します.
せいげんじょうけん
茶色の格子の水brownは8以上5000以下の自然水です.
黄色のメッシュの数黄色は、1つ以上の200000以下の自然数です.
カーペットの横方向の長さは、縦方向の長さ以上です.
に答える
最近は符号化とともにモジュール化に努めている.コードがきれいになり、読みやすさも良くなったような気がします.
下図を見ると説明しやすい.
この図はbrownが10である.どんな形をしてもx+yは7(brown/2+2)になります.
そこで,yが最大値3から始まる繰返し文を,残りのmax値からyを減算した値をxに割り当てることで,内部幅を求める繰返し文を記述した.
Leoは家に帰ってから、さっき見たじゅうたんの黄色と茶色の格子数を覚えたが、じゅうたん全体の大きさは覚えていない.
Leoがこのカーペットに茶色の格子の数茶色、黄色の格子の数黄色をパラメータとして与えた場合、カーペットの横方向と縦方向の寸法を順番に並べて返します.
せいげんじょうけん
茶色の格子の水brownは8以上5000以下の自然水です.
黄色のメッシュの数黄色は、1つ以上の200000以下の自然数です.
カーペットの横方向の長さは、縦方向の長さ以上です.
に答える
最近は符号化とともにモジュール化に努めている.コードがきれいになり、読みやすさも良くなったような気がします.
function solution(brown, yellow) {
const max = brown/2 + 2 // 이부분을 정의하는데 많은 고민을했다. 아래 그림으로 설명을 해놓았다.
const space = (min) => {
const y = min //x >= y 라는 조건이 있기때문에 최소 길이를 y에 사용하였다.
const x = max-y
return {x,y, answer:(x-2)*(y-2) } // 바깥쪽이 브라운격자로 둘러 쌓여있기때문에 옐로우 격자가 들어갈 공간은 (x-2)*(y-2) 이다.
}
for (let i = 3; i <= max-3; i++){ // 각 변은 최소 3개의 블럭이 있어야 옐로우 블럭이
const result = space(i)
if(result.answer === yellow) {
return [result.x, result.y]
}
}
}
max = brown/2 + 2下図を見ると説明しやすい.
この図はbrownが10である.どんな形をしてもx+yは7(brown/2+2)になります.
そこで,yが最大値3から始まる繰返し文を,残りのmax値からyを減算した値をxに割り当てることで,内部幅を求める繰返し文を記述した.
Reference
この問題について([コケ]プログラマーはじゅうたんを完全に探求する), 我々は、より多くの情報をここで見つけました https://velog.io/@hinyc/코테-프로그래머스-완전탐색-카펫テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol