알고리즘/baekjoon
20210114_코테공부
jungeun960
2021. 1. 14. 15:44
단계별로 풀기 - 기본수학 1 => point.규칙찾기
# 2292 벌집 (브론즈2)
point. 수열 1 + 6 + 12+ 18 .. 6n
n = int(input())
first = 1
room = 1
if n == 1:
print(1)
else:
while True:
first += 6*(room)
room += 1
if n <= first:
print(room)
break
# 1193 분수찾기 (브론즈2)
point. 규칙찾기
X = int(input())
stage, key_X = 1, 1
while key_X + stage <= X:
key_X += stage
stage += 1
#print(stage, key_X)
step = X - key_X
x, y = step + 1, stage - step
if stage % 2 == 0:
print('{}/{}'.format(x, y))
else:
print('{}/{}'.format(y, x))
# 2869 달팽이는 올라가고 싶다 (브론즈2)
point. 시간초과 안나게 하기, 식 구하기
1) 시간 초과 남(실패)
A, B, V = list(map(int, input().split()))
count = 1
result = 0
while True:
result += A
if result >= V:
break
else:
result -= B
count += 1
print(count)
2) 식 구하기 - 정상에 도달하면 떨어지지 않는다.
a, b, v = list(map(int, input().split()))
v = v-a #정상에 도달하면 안떨어지니까 b빼고
if v % (a-b) == 0:
print(v//(a-b) +1) # v-a로 이미 횟수 한번을 셋으니까 +1
else:
print(v // (a - b) + 2) # & 나누어떨어지지 않아서 +1
반응형