1. 구해야 하는 것
# 카펫의 가로, 세로
2. 1을 구하기 위해 필요한 것
# 가로 세로를 어떻게 구할지??
# 넓이 = yellow + brown
# brown의 면적 = 2*세로 + 2*가로 - 4
# yellow의 면적 = (가로-2) * (세로-2)
3. 그 외 고려해야 할 사항
# 카펫의 긴쪽이 가로
# yellow는 1 이상(가로, 세로 최소 길이는 3부터 시작한다)
1. 풀이
s = yellow + brown # 넓이
for height in range(3, s//3+1): # 세로 길이 후보 i
if s % height == 0: # 넓이를 세로 길이로 나눌 수 있다면
width = s / height # 그것은 가로길이 후보
if (height - 2) * (width - 2) == yellow: # yellow의 면적 = (가로-2) * (세로-2)
print([width, height])
2. 제출용 함수
def solution(brown, yellow):
s = yellow + brown
for height in range(3, s//3+1):
if s % height == 0:
width = s / height
if (height - 2) * (width - 2) == yellow:
return [width, height]
'코딩 테스트 연습' 카테고리의 다른 글
[알고리즘] 프로그래머스 - 푸드 파이트 대회 (0) | 2023.05.19 |
---|---|
[알고리즘] 프로그래머스 - 소수 찾기 (0) | 2023.05.18 |
[알고리즘] 프로그래머스 - 괄호 회전하기 (0) | 2023.05.08 |
[알고리즘] 프로그래머스 - 기사단원의 무기 (0) | 2023.05.08 |
[알고리즘] 프로그래머스 - 달리기 경주 (0) | 2023.05.04 |
댓글