[Programmers][python] 8. 解答練習(3):プログラマーカーペット
3342 ワード
誤りに対する批判、質問、討論を歓迎します.自由にコメントを残しておきましょう!!
Leoはカーペットを買いに行きました.格子のカーペットが並んでいて、真ん中に赤を塗っていて、最後の列に茶色を塗っています.下図のように.
Leoは家に帰ってから、さっき見たじゅうたんに赤と茶色で塗った格子の数を覚えたが、じゅうたん全体の大きさは覚えていない.
Leoがこのカーペットに茶色の格子の数brown,赤色の格子の数redをパラメータとして与えた場合,カーペットの横方向と縦方向の寸法を順番に並べて返す解関数を記述してください.
ブラウンメッシュの数brownは、8または5000より大きい自然数である. 赤色メッシュの赤色は、200000を超える自然数である. カーペットの横方向の長さは、縦方向の長さ以上である.
brownredreturn102[4, 3]81[3, 3]2424[8, 6]
よく考えてみると、最初のルールは
したがって、
以下に、 横長X横長X横長Xの値は 私は茶色しか数えません. `
この記事は、プログラマーアカデミー人工知能Defcosコースで学んだ内容をもとにまとめたものです.
プログラマー-カーペット
問題の説明
Leoはカーペットを買いに行きました.格子のカーペットが並んでいて、真ん中に赤を塗っていて、最後の列に茶色を塗っています.下図のように.
Leoは家に帰ってから、さっき見たじゅうたんに赤と茶色で塗った格子の数を覚えたが、じゅうたん全体の大きさは覚えていない.
Leoがこのカーペットに茶色の格子の数brown,赤色の格子の数redをパラメータとして与えた場合,カーペットの横方向と縦方向の寸法を順番に並べて返す解関数を記述してください.
せいげんじょうけん
I/O例
brownredreturn102[4, 3]81[3, 3]2424[8, 6]
の意見を打診
よく考えてみると、最初のルールは
brown + red
の値がbrown * red
だった.したがって、
for
重複文の範囲はtotal = brown + red
である.total
がi
によって分解されると、total//i
とi
のペアbrown
とred
の候補に分解される.以下に、
brown
の数との比較を示す.total
であり、red
の値を減算すると適切なi
が得られる.i*2
:2行ブラウン2*(total//i))-4
2行の茶色の重複を削除する4つCode (Python)
def solution(brown, red):
total = brown + red
for i in range(1, brown+red+1):
if total % i == 0:
if (i*2 + (2*(total//i))-4) == brown:
return [(total)//i, i]
この記事は、プログラマーアカデミー人工知能Defcosコースで学んだ内容をもとにまとめたものです.
Reference
この問題について([Programmers][python] 8. 解答練習(3):プログラマーカーペット), 我々は、より多くの情報をここで見つけました https://velog.io/@illstandtall/Programmerspython-8.-문제풀이-실습-3-프로그래머스-카펫テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol