じゅうたん

3311 ワード

問題の説明


  • Leoはじゅうたんを買いに行きました.格子じゅうたんの列が見えました.真ん中は黄色で、一列は茶色で、下図のように見えます.
    Leoは家に帰ってから、さっき見たじゅうたんの黄色と茶色の格子数を覚えたが、じゅうたん全体の大きさは覚えていない.

  • Leoがこのカーペットに茶色の格子の数茶色、黄色の格子の数黄色をパラメータとして与えた場合、カーペットの横方向と縦方向の寸法を順番に並べて返します.
  • せいげんじょうけん

  • 茶色の格子の水茶色は8以上5000以下の自然水です.
  • 黄色のメッシュの数は、1以上200000以下の自然数です.
  • カーペットの横方向の長さは、縦方向の長さ以上である.
  • def solution(brown, yellow):
        answer = []
        #a는 가로 길이 b는 세로 길이
        #가로 길이의 최소 길이는 3
        a = 3
        while True:
        	#yellow = (a-2)*(b-2) 연립방정식
            b = (yellow/(a-2))+2
            # 만약 정수로 나뉘어 떨어져있으면 길이값 가능성이 있음
            if b == int(b):
            	#만약 주어진 브라운 색깔과 같다면 가로 세로 길이가 나온 거임
                if (a+b-2)*2 == brown:
                	#만약 가로의 길이가 세로의 길이보다 작다면 바꿔주고 리턴
                    if a < b:
                        a,b = b,a
                    return [a,b]
            # 가로의 길이를 1씩 증가시킴
            a += 1
        return answer
    質問元:https://programmers.co.kr/learn/courses/30/lessons/42842