https://www.acmicpc.net/problem/9414
문제
각 테스트 케이스에 따라 규칙적으로 증가하는 땅값을 확인하고, 구매할 수 있다면 구매하는데 필요한 비용을, 구매할 수 없다면 "Too expensive"를 출력하는 문제이다.
풀이
파이썬은 데이터의 크기에 따라 메모리를 동적으로 할당하기 때문에 큰 수를 다루기 용이하다. 따라서 문제 그대로 모든 땅값을 구하고, 상근이 가진 돈과 비교해서 너무 비싸면 "Too expensive"를 출력하면 된다. 만약 C++, Java 와 같이 데이터 타입에 따라 범위가 정해져 있는 언어를 사용한다면 땅값을 더해주면서 상근이 가진 돈과 비교하면 되겠다.
땅값을 구하는 공식은 $ 2 \times (L_i)^t $ 인데, 해가 지날수록 기하습수적으로 증가한다. 따라서 첫 해에 가장 비싼 땅을 사야하고, 마지막 해에 가장 저렴한 땅을 사야 구매 비용을 최소화할 수 있다.
각 테스트 케이스에 따라 땅값을 입력받고, 정렬한 후, 땅값의 합을 구한다. 그 후 상근이 가진 돈과 비교하여 알맞게 출력하면 된다.
코드
import sys
sanggeun_money = 5000000
test = int(sys.stdin.readline())
for _ in range(test):
pay = 0
time = 1
lands = []
while True:
temp = int(sys.stdin.readline())
if temp == 0:
break
else:
lands.append(temp)
lands = sorted(lands, reverse=True)
for land in lands:
pay += 2 * land ** time
time += 1
if pay > sanggeun_money:
print('Too expensive')
else:
print(pay)
'Online Judge > Baekjoon' 카테고리의 다른 글
[Baekjoon 20436] ZOAC 3 | Python (0) | 2024.10.03 |
---|---|
[Baekjoon 31418] 스펀지 | Python (0) | 2024.10.01 |
[Baekjoon 14381] 숫자세는 양 (Small) | Python (0) | 2024.09.19 |
[Baekjoon 10816] 숫자 카드 2 | Python (0) | 2024.09.03 |
[Baekjoon 12683] Test Passing Probability (Small) | Python (0) | 2024.08.31 |
https://www.acmicpc.net/problem/9414
문제
각 테스트 케이스에 따라 규칙적으로 증가하는 땅값을 확인하고, 구매할 수 있다면 구매하는데 필요한 비용을, 구매할 수 없다면 "Too expensive"를 출력하는 문제이다.
풀이
파이썬은 데이터의 크기에 따라 메모리를 동적으로 할당하기 때문에 큰 수를 다루기 용이하다. 따라서 문제 그대로 모든 땅값을 구하고, 상근이 가진 돈과 비교해서 너무 비싸면 "Too expensive"를 출력하면 된다. 만약 C++, Java 와 같이 데이터 타입에 따라 범위가 정해져 있는 언어를 사용한다면 땅값을 더해주면서 상근이 가진 돈과 비교하면 되겠다.
땅값을 구하는 공식은 $ 2 \times (L_i)^t $ 인데, 해가 지날수록 기하습수적으로 증가한다. 따라서 첫 해에 가장 비싼 땅을 사야하고, 마지막 해에 가장 저렴한 땅을 사야 구매 비용을 최소화할 수 있다.
각 테스트 케이스에 따라 땅값을 입력받고, 정렬한 후, 땅값의 합을 구한다. 그 후 상근이 가진 돈과 비교하여 알맞게 출력하면 된다.
코드
import sys
sanggeun_money = 5000000
test = int(sys.stdin.readline())
for _ in range(test):
pay = 0
time = 1
lands = []
while True:
temp = int(sys.stdin.readline())
if temp == 0:
break
else:
lands.append(temp)
lands = sorted(lands, reverse=True)
for land in lands:
pay += 2 * land ** time
time += 1
if pay > sanggeun_money:
print('Too expensive')
else:
print(pay)
'Online Judge > Baekjoon' 카테고리의 다른 글
[Baekjoon 20436] ZOAC 3 | Python (0) | 2024.10.03 |
---|---|
[Baekjoon 31418] 스펀지 | Python (0) | 2024.10.01 |
[Baekjoon 14381] 숫자세는 양 (Small) | Python (0) | 2024.09.19 |
[Baekjoon 10816] 숫자 카드 2 | Python (0) | 2024.09.03 |
[Baekjoon 12683] Test Passing Probability (Small) | Python (0) | 2024.08.31 |