문제 풀이
def solution(brown, yellow):
answer = []
# 카펫의 전체 크기는 brown + yellow 이다.
area = brown + yellow
# yellow가 최소(1)일 때 area는 3 * 3의 크기를 가진다. 이는 width의 최솟값이 3이고, 최댓값이 area / 3이라는 것을 말한다.
for width in range(int(area / 3), 1, -1):
# area가 가로 값으로 나누어 떨어지면
if area % width == 0:
# 그에 따른 세로 값을 구한 후
height = area // width
# yellow는 brown을 테두리로 가진 사각형이다. 상하좌우로 크기를 -1씩 줄인, 즉 (가로-2)*(세로-2)의 크기를 가진 사각형이다. 이를 만족한다면
if yellow == (width - 2) * (height - 2):
# answer에 가로, 세로 순으로 값을 넣은 후 return
answer += width, height
return answer
문제 링크
programmers.co.kr/learn/courses/30/lessons/42842?language=python3
'Python > 프로그래머스' 카테고리의 다른 글
[프로그래머스] [Python] 소수 찾기 (0) | 2020.12.26 |
---|---|
[프로그래머스] [Python] 모의고사 (0) | 2020.12.11 |
[프로그래머스] [Python] H-Index (0) | 2020.12.09 |
[프로그래머스] [Python] 가장 큰 수 (0) | 2020.12.07 |
[프로그래머스] [Python] K번째 수 (0) | 2020.12.03 |