프로그래머스 코딩테스트 고득점 Kit -
완전탐색
자바로 푼 방식
[프로그래머스] Lv2 - 카펫
def solution(brown, yellow):
answer = []
# 갈색은 노란색을 다 감싸는 모양, 가로 >= 세로
# a * b = 노란색 격자 수 라면 -> 갈색은 (a * 2) + (b * 2) + 4
for i in range(1, yellow + 1):
if (yellow % i == 0):
yellow_r = i
yellow_c = yellow // i
if (((yellow_r * 2) + (yellow_c * 2) + 4) == brown):
answer.append(max(yellow_r + 2, yellow_c + 2))
answer.append(min(yellow_r + 2, yellow_c + 2))
break
return answer
if __name__ == '__main__':
print(solution(10, 2))
yellow
의 약수 조합을 구해서 → 해당 약수 조합을 감싸는 개수인 brown
이 일치하는 개수를 가진다면 → 정답[가로, 세로]
여야 하는데 가로가 세로보다 크거나 같아야 하므로 max
와 min
을 사용