[Python/Programmers]カーペット
質問する
1.難易度:プログラマーレベル2
2.問題の概要
Leoはじゅうたんを買いに行きました.格子じゅうたんの列が見えました.真ん中は黄色で、一列は茶色で、下図のように見えます.
Leoは家に帰ってから、さっき見たじゅうたんの黄色と茶色の格子数を覚えたが、じゅうたん全体の大きさは覚えていない.
Leoがこのカーペットに茶色の格子の数茶色、黄色の格子の数黄色をパラメータとして与えた場合、カーペットの横方向と縦方向の寸法を順番に並べて返します.
せいげんじょうけん
3.問題の核心
ex)4ビットのパスワードからなるロックを解除しようとすると、0000から9999までのすべての試行(無条件解答)
マイコード
import math
def solution(brown, yellow):
for yHeight in range(1, yellow):
yWidth = yellow / yHeight
if yWidth != int(yWidth):
continue
elif (yWidth * yHeight!= yellow) or (yWidth < yHeight):
continue
else:
bWidth = yWidth + 2
bHeight = yHeight + 2
if bWidth * bHeight - yellow == brown:
return [bWidth, bHeight]
if yellow ==1:
return [3,3]
理想的なコード
def solution(brown, yellow):
total = brown + yellow
for i in range(total, 2, -1): ## i는 가로
if total % i == 0:
j = total // i ## j는 세로
if yellow == (i-2)*(j-2):
return [i, j]
Reference
この問題について([Python/Programmers]カーペット), 我々は、より多くの情報をここで見つけました https://velog.io/@jnl1128/PythonProgrammers-카펫テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol