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

 

Lv2 문제고, 스스로 푼 문제다!

처음에 문제를 읽었을 때는 그냥 직사각형의 가로,세로 길이를 구하는 건가? 싶어서 이것저것 삽질을 하다가 

자세히 읽어보니 갈색 영역은 세로에서 위아래, 가로에서 양옆에 한줄씩은 기본으로 차지해야한다는 것을 알았다 

따라서 기본으로 세로 길이가 3이상이 되어야한다

 

예제 3번을 보면 넓이가 48이고, yellow 영역이 24이다.  기본으로 48의 인수들을 구한 다음에 위의 조건을 만족해야하므로 (가로 - 2) * (세로 - 2) 가 yellow영역이 되는 가로, 세로를 찾은 다음 answer에 append한 결과를 반환하면 된다 

 

제발 문제좀 한번에 꼼꼼히 읽자!!!!!

 

- 정답 풀이 :

def solution(brown, yellow):
    area = brown + yellow
    heights = []
    #세로 후보들 result에 모으기 
    for i in range(3, area):
        if area % i == 0 :
            heights.append(i)      
    answer = []
    for height in heights:
        if (height - 2) * (area // height -2) == yellow:
            answer.append(area // height)
            answer.append(height)            
            break
            
    return answer

+ Recent posts