티스토리 뷰
📚 문제
입력
출력
예제 입력
3
7
2
10
0
20
29
31
0
42
41
40
37
20
0
예제 출력
134
17744
Too expensive
🧑🏻💻 풀이 과정
moeny
는 파이썬의 거듭제곱 기호**
를 이용하여 초기화해두자.- 가장 적은 금액으로 부지를 구입하기 위해 입력받은 요소를 가장 큰 수부터 내림차순 정렬하자. 그래야 큰 수의 거듭 제곱을 줄일 수 있기 때문.
sum
을arr[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)
'알고리즘' 카테고리의 다른 글
[algorithm] 백준 11292 - 키 큰 사람 (파이썬) (0) | 2022.08.12 |
---|---|
[algorithm] 백준 1380 - 귀걸이 (파이썬) (0) | 2022.08.07 |
[algorithm] 백준 11536 - 줄 세우기 (파이썬) (0) | 2022.07.30 |
[algorithm] 백준 14425 - 문자열 집합 (파이썬) (0) | 2022.07.29 |
[algorithm] 백준 15903 - 카드 합체 놀이 (c++) (0) | 2022.07.28 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 김영한
- 노마드
- 코틀린
- 릿코드
- 스프링부트
- 스프링 부트
- leetcode
- Real MySQL
- 노마드코더
- 코테
- 그리디
- 구현
- mysql 8.0
- 리팩토링
- 정렬
- webflux
- 알고리즘
- 파이썬
- 백준
- kotlin
- 인프런
- 문자열
- 북클럽
- 스프링
- Spring
- 자료구조
- spring boot
- Algorithm
- 데이터베이스
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함