균형의 수호자
코더랜드 최고의 부호 OOO은 코더시티에서 가장 높은 건물을 2채 세우려고 합니다! 하지만 안타깝게도 OOO가 사용할 수 있는 건축자재는 한정적이고 두 건물 높이는 반드시 같아야 합니다!
과연 OOO은 한정된 건축 자재를 가지고 얼마나 높은 타워를 만들 수 있을까요?
입력 예시 1
1 3 5 7
출력 예시 1
8
입력 예시 2
1 2 4
출력 예시 2
재료가 부족합니다
만약 각각 1 3 5 7 이라는 길이를 가진 건축자재를 가지고 있다면 3 + 5 = 8, 1 + 7 = 8 이므로 8의 높이를 가진 건물을 2채 지을 수 있습니다!
다만, 모든 건축 자재를 꼭 사용해야 할 필요는 업습니다.
입력
- 자연수로 이루어진 숫자들이 주어집니다.
- 이 숫자의 크기는 1 보다 크거나 같으며 1000보다 작거나 같습니다.
- 이 숫자들의 길이는 0보다 크거나 같으며 20보다 작거나 같습니다.
출력
- 건물의 높이가 가장 크면서도 같을 수 있다면 그 높이를 출력하세요
- 높이가 같을 수 없다면 “재료가 부족합니다”를 출력하세요
소스 코드
heights = list(map(int, input().split()))
def make_building(one, two, cnt):
if one == two:
global Max
Max = max(Max, one)
if cnt == len(heights):
return
make_building(one + heights[cnt], two, cnt+1)
make_building(one, two + heights[cnt], cnt+1)
make_building(one, two, cnt+1)
Max = 0
make_building(0,0,0)
if Max == 0:
print('재료가 부족합니다')
else:
print(Max)
'Algorithm > Elice' 카테고리의 다른 글
(Elice / 완전탐색 / Python) 주식 투자 기법 (0) | 2022.10.13 |
---|---|
(Elice / 수학 / Python) K번 곱하기 (0) | 2022.10.12 |
(Elice / 시뮬레이션 / Python) 모자 장수의 모자 장사! (0) | 2022.10.12 |
(Elice / 완전탐색 / Python) 엘리스의 동물어 수업 (0) | 2022.10.12 |
(Elice / 문자열 / Python) 두 가지 문자열 비교 (0) | 2022.10.12 |