호기심 많은 분석가
[프로그래머스] 완전탐색 - 카펫 (Python) 본문
def solution(brown, yellow):
answer = []
by = brown+yellow
for i in range(1, int(by**0.5)+1) :
if by%i==0 :
answer.append([by//i, i])
return [i for i in answer if (i[0]-2)*(i[1]-2) == yellow][0]
오랜만에 수학 문제를 만나서 반가웠다. 조금의 센스를 발휘하면 쉽게 해결할 수 있는데, 테두리가 갈색이라 했으므로 전체 도형이 NxM형태라면 노란 격자는 (N-2) x(M-2)의 형태일 수 밖에 없다. (상하좌우로 한 칸씩 줄어듬)
그리고 가로가 세로보다 크거나 같다고 했으므로, 전체 도형 넓이의 루트까지만 약수를 찾아주면 된다. 그 결과 나온 여러 값들 중 곱했을 때의 값이 yellow의 크기와 동일한 원소를 출력해주면 문제 마무리.
'Coding > Coding Test & Algorithm' 카테고리의 다른 글
[프로그래머스] 완전탐색 - 모의고사 (Python) (0) | 2021.06.28 |
---|---|
[프로그래머스] 완전탐색 - 소수 찾기 (Python) (0) | 2021.06.28 |
[프로그래머스] 스택_큐 - 주식가격 (Python) (0) | 2021.06.28 |
[프로그래머스] 정렬 - H-Index (0) | 2021.06.25 |
[프로그래머스] 정렬 - 가장 큰 수 (Python) (0) | 2021.06.25 |