# 1712번 손익분기점
fixed_cost, variable_cost, price = map(int, input().split())
if variable_cost < price :
print(fixed_cost//(price-variable_cost)+1)
else :
print(-1)
처음에는 while 반복문으로 풀었더니 시간초과가 났다. 그래서 반복문을 안쓰도록 3가지 값으로만 어떻게 해볼 수 없을까 하다가 나온 코드
# 2292번 벌집
n = int(input())
point = 1
for i in range(0,n):
point+=6*i
if point>=n:
print(i+1)
break
벌집 테두리는 1 -> 6*1 -> 6*2 -> 6*3 … 으로 늘어난다.
그럼 총 개수는 1 -> 1+(6*1) -> 1+(6*1)+(6*2) .. 일 것이다.
# 1193번 분수찾기
x = int(input())
a = 0
b = 0
num = 0
for i in range(1, x+1):
num += i
if num >= x :
order = num - x
if (i % 2) == 1 :
a = 1 + order
b = i - order
else :
a = i - order
b = 1 + order
print(a, end='')
print('/', end='')
print(b)
break
개수가 1 -> 1+2-> 1+2+3 -> 1+2+3+4 ->.. 식으로 늘어난다.
대각선 라인이 추가 될 때, 홀수번째 대각선은 n/1 -> (n-1)/1+1 -> (n-2)/1+2 -> .. -> 1/n 순이며
짝수번째 대각선 라인은 반대 순서임을 이용하였다.
# 2869번 달팽이는 올라가고 싶다
a, b, v = map(int, input().split())
h = v-a
if h%(a-b) == 0:
print(h//(a-b)+1)
else :
print(h//(a-b)+2)
많이 틀렸던 문제이다. 처음에 이해가 잘 가지 않아 많이 고민했던 문제
- 달팽이가 첫날에 바로 도착하지 않는 경우 제외, 달팽이는 밤에 미끄러진다. 따라서 달팽이가 마지막날에는 낮에 오르는 것만으로도 정상에 도착할 수 있으므로 v-a를 h에 저장해준다.
- h%(a-b)==0 인 경우는, 마지막날 낮에 도착한 경우이다. 따라서 +1을 해준다.
- 그 이외의 경우는 밤에 한번 더 자고 그 다음날 낮에 도착한 경우이므로 +2를 해준다.
'Algorithm > Programmers' 카테고리의 다른 글
[Python] 신규 아이디 추천 (0) | 2021.04.05 |
---|---|
[Python] 크레인 인형 뽑기 게임 (0) | 2021.04.05 |
[Python] 두 개 뽑아서 더하기 (0) | 2021.04.04 |
[Python] 기본 수학 1 (0) | 2021.02.11 |
[Python] 기본수학 1 (0) | 2021.02.02 |