호기심 많은 분석가
[프로그래머스] 완전탐색 - 카펫 (Python) 본문
코딩테스트 연습 - 카펫
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과
programmers.co.kr
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 |