공부 서랍장/알고리즘 공부

[프로그래머스] 카펫 python

만땅이 2022. 9. 19. 15:24

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

# "brown/2 = h+w+2" 아이디어가 중요 열쇠

def solution(brown, yellow):
    # brown/2 = h+w+2 아이디어
    answer = []
    sum_hw = int((brown/2) + 2)
    
    # h와 w의 차이가 날 수 있는 모든 경우의 수 확인
    # 무조건 h > w이기 때문에 tmp_w가 큰 경우부터 확인
    for i in range(1, sum_hw):
        tmp_w = sum_hw - i
        tmp_h = sum_hw - tmp_w
        
        # 넓이가 맞으면 정답
        if (tmp_w * tmp_h) == (brown + yellow):
            answer.append(tmp_w)
            answer.append(tmp_h)
            break

    return answer
반응형