티스토리 뷰

📚 문제

입력

출력

예제 입력

3
7
2
10
0
20
29
31
0
42
41
40
37
20
0

예제 출력

134
17744
Too expensive

🧑🏻‍💻 풀이 과정

  • moeny는 파이썬의 거듭제곱 기호 **를 이용하여 초기화해두자.
  • 가장 적은 금액으로 부지를 구입하기 위해 입력받은 요소를 가장 큰 수부터 내림차순 정렬하자. 그래야 큰 수의 거듭 제곱을 줄일 수 있기 때문.
  • sumarr[0]요소로 초기화 하고, arr[1]부터 반복하며 거듭 제곱한 결과를 계속 더하자. sum += (2 * (j ** cnt))
  • 거듭 제곱의 수를 1 증가시키자 cnt += 1
  • sum의 결과가 가진 돈 보다 크다면 Too expensive, 적다면 sum을 출력하자.
def input_numbers():
    numbers = []
    while True:
        number = int(input())
        if number == 0: break
        numbers.append(number)

    return sorted(numbers, reverse=True)


def purchase(arr):
    # sum은 arr의 첫 번째 값으로 초기화
    sum = 2 * arr[0]
    # 거듭 제곱을 위한 변수
    cnt = 2
    # sum은 첫 번째 값으로 초기화 해두었으니, 인덱스 1부터 계산 시작
    for j in arr[1:]:
        sum += (2 * (j ** cnt))
        cnt += 1

    return sum


t = int(input())
money = 5 * (10 ** 6)
for _ in range(t):
    arr = input_numbers()
    sum = purchase(arr)
    # 구입에 필요한 금액이 가진 돈 보다 많으면 Too expensive, 아니면 구입에 필요한 금액의 합 출력
    print("Too expensive") if sum > money else print(sum)
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함