1. 달팽이는 올라가고 싶다.
#달팽이는 올라가고 싶다
a, b, v = map(int, input().split(' '))
cnt = meter = 0
while True:
meter += a
if meter >= v:
cnt += 1
break
meter -= b
cnt += 1
print(cnt)
하면서도 이미 예제 3에서 숫자가 크게 들어가는 것을 알고 있었기에 이건 분명 시간초과가 뜰 것 같았다.
while문을 사용하지 않고, 입력 받은 수대로 바로 값을 출력해야 한다고 한다.
마지막 날에 결국 A만큼 올라가게 되어있다.
따라서, V - A의 높이 만큼 A-B가 얼마동안 걸리는 지 구한 후, 나눠떨어지지 않으면 +1을 해주고,
최종 마지막 날 +1을 해준다.
#달팽이는 올라가고 싶다_2
a, b, v = map(int, input().split(' '))
day = (v-a)/(a-b)
if day == int(day):
day = int(day)
else:
day = int(day) + 1
print(day+1)
2. 부녀회장이 될테야
#부녀회장이 될테야
t = int(input())
result = []
for _ in range(t):
k = int(input())
n = int(input())
people = [i+1 for i in range(n)]
for i in range(k):
for j in range(1, n):
people[j] = people[j-1] + people[j]
print(people[-1])
달팽이 문제처럼 시간 초과와 같은 일이 생기는 문제인 건가 싶었는데, 그냥 배열을 선언해주고 값을 하나씩
바꿔가주면 되는 것 같다.
반응형