728x90
반응형
문제:
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 빨간색으로 칠해져 있고 모서리는 갈색으로 칠해져 있는 격자 모양 카펫을 봤씁니다.
Leo는 집으로 돌아와서 아까 본 카펫의 빨간색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.
Leo가 본 카펫에서 갈색 격자의 수 brown, 빨간색 격자의 수 red가 매개변수로 주어질 때 카펫의 가로,세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.
풀이 방법:
이 카펫은 내부에 있는 빨간색의 모양에 따라서 갈색으로 칠한 수가 정해지게 된다. 이 문제가 완전탐색이므로 빨간색의 갯수로 나올수 있는 경우의 수를 모두 구해서 알맞은 경우를 찾도록 한다.
안의 빨간색의 모양은 사각형의 모양이므로 red의 약수마다 갈색의 갯수를 구한다. 이때 brown과 같아진다면 그 경우가 답이 되는 것이다.
1 2 3 4 5 6 7 8 9 10 | def solution(brown, red): answer=[] for i in range(1,int(red/2)+2): if red%i==0: a,b=max(red//i,i),min(red//i,i) if 2*a+(b+2)*2==brown: answer.append(a+2) answer.append(b+2) break return answer | cs |
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
[Programmers]Lv 2. 타겟 넘버 (0) | 2019.02.28 |
---|---|
[Programmers]Lv 3. 정수 삼각형 (0) | 2019.02.27 |
[Programmers]:Lv 3. 예산 (0) | 2019.02.25 |
[Programmers]Lv 2. 구명 보트 (0) | 2019.02.24 |
[Programmers]Lv 3.타일 장식물 (0) | 2019.02.23 |