[PS]
[프로그래머스] 카펫
0giru_kim
2021. 5. 14. 09:48
https://programmers.co.kr/learn/courses/30/lessons/42842
코딩테스트 연습 - 카펫
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과
programmers.co.kr
따로 어려웠던 내용이 없는 간단한 문제였다.
노란색은 항상 중앙에 모여있으므로 n개가 주어질 때 약수 쌍을 구분하는 것이 포인트다.
ex) 노란색이 24개 일 때, 가로 세로가 1줄-24줄 or, 2줄-12줄 or 3줄-8줄 ... 등등
해당하는 약수 쌍이 나왔을 때, 큰 값 - 작은 값 순으로 정렬해서 리턴해주었다.
def getBrown(col, row):
return (col + 2) * 2 + 2 * row
def solution(brown, yellow):
answer = list()
for i in range(1, yellow + 1):
if yellow % i == 0:
tempCol = i;
tempRow = yellow / i;
if getBrown(tempCol, tempRow) == brown:
answer = [max(tempCol + 2, tempRow + 2), min(tempCol + 2, tempRow + 2)]
break
return answer