[프로그래머스/Python] 카펫

류성훈·2022년 6월 27일
0

코딩테스트

목록 보기
3/29


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

카펫의 가로,세로 길이를 구하는 문제이다.

yellow카펫(안쪽)의 갯수에 따른 brown(바깥쪽)의 갯수를 구하고, 문제에서 주어진 brown과 비교하여 일치하면 리턴하면 된다.

문제해결 과정

  1. yellow의 약수 리스트 만들기
  2. yellow의 가로,세로에 따른 brown카펫의 갯수 구하기
  3. 문제에서의 brown카펫 갯수와 비교하여 일치하면 리턴하기
def divisor_list(n):
    arr = []
    for i in range(1,int(n**(1/2))+1):
        if n%i==0:
            arr.append((n//i,i))
    return arr

def solution(brown, yellow):
    
    arr = divisor_list(yellow)
    
    for w,h in arr:
        if (w+h+2)*2 == brown:
            return [w+2,h+2]
    
    return False
profile
(전)Backend Developer / (현)Data Engineer

0개의 댓글