컴공생의 다이어리

[프로그래머스] 카펫 - 파이썬(Python) 본문

Development/Algorithm & Coding Test

[프로그래머스] 카펫 - 파이썬(Python)

컴공 K 2022. 5. 3. 00:01

[프로그래머스] 카펫 - 파이썬(Python)

 

 

 

def solution(brown, yellow):
    size = brown + yellow
    for i in range(3, brown):
        if size % i == 0:
            j = size // i
            if (i - 2) * (j - 2) == yellow:
                return sorted([i, j], reverse=True)

혹은

def solution(brown, yellow):  # 둘레 길이 활용
    for i in range(1, int(yellow ** (1 / 2)) + 1):
        if yellow % i == 0:
            if 2 * (i + yellow // i) == brown - 4:
                return [yellow // i + 2, i + 2]

 

 

 

아래는 근의 공식을 활용한 다른 사람의 풀이이다.

def solution(brown, yellow):  # 근의 공식 활용
    x = (brown + 4 + ((brown + 4) ** 2 - 16 * (brown + yellow)) ** 0.5) / 4
    y = (brown + yellow) / x

    return [x, y]

 

 

 

 

 

 

https://programmers.co.kr/learn/courses/30/lessons/42842

 

코딩테스트 연습 - 카펫

Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과

programmers.co.kr

 

728x90
Comments