문제 : https://programmers.co.kr/learn/courses/30/lessons/42842
▶ 코드
def solution(brown, yellow):
s = brown+yellow
# 합 :조합 구하기
temp1 = []
for i in range(3, s+1):
flag = 0
if s%i == 0:
flag = 1
left = s//i
right = i
if flag==1 and left >= right:
temp1.append([left,right])
# yellow 조합 구하기
temp2 = []
for i in range(1, yellow+1):
flag = 0
if yellow%i == 0:
flag = 1
left = yellow//i
right = i
if flag==1:
temp2.append([left, right])
#print('합 = ',temp1)
#print('yellow=', temp2)
#print()
# yellow와 합 리스트 하나씩 비교
# 조건: yellow의 left,right는 '합'의 left,right보다 둘다 무조건 작고,
# yellow의 left, right보다 '합'의 left,right는 항상 각각 2이상 커야한다.
for a in temp2: # yellow
for b in temp1: # '합'
if a[0]+2 <= b[0] and a[1]+2 <= b[1]:
res = [b]
#print(res[0])
return res[0]
break
#solution(10, 2)
#solution(8, 1)
#solution(24, 24)
'[프로그래머스] 코테 고득점 Kit > 완전탐색' 카테고리의 다른 글
[Level 2] 소수 찾기 (0) | 2020.05.15 |
---|---|
[Level 1] 모의고사 (0) | 2020.05.15 |