→ ‘조건 수식’이참(true, 1)이면 ‘수식1’ 수행,거짓(false, 0)이면 ‘수식2’ 수행
# 시간초과한 코드
a, b, v = map(int, input().split())
day = 0
while 1:
if a - b == v:
print(day)
break
a += 2
b += 1
day += 1
# 통과한 코드
a, b, v = map(int, input().split())
day = (v - b) / (a - b) // # (a * day) - (b * (day - 1)) >= v
print(int(day) if day == int(day) else int(day) + 1)
풀이 1 (시간초과)
위 코드 주석에 적힌 것처럼 처음 풀이한 코드는 시간초과가 떳다.. 그래도 풀이를 해보자면
달팽이가 낮에 올라가는 변수를 a, 밤에 자는 동안 미끄러지는 변수를 b
나무 막대의 정상 높이의 변수를 v로 설정하고 각각 정수로 입력받았다.
그리고 얼마 걸렸는지 셀 day 변수를 0으로 초기화 시켜놓으면 준비완료🙌
다음으로 while문으로 break가 나오기 전까지 반복을 해주고(아마 여기서 오래 걸려서 시간초과가 뜬 것 같다)
하루가 지날 때마다 변수 a는 2를 증가시키고, 변수 b는 1을 증가시켜서 이것을 뺀 수치가 5가 되었을 때
day를 출력해주면 시간초과한 코드 풀이 끝!
풀이 2 (통과)
이제 다음으로 시간초과가 나지 않은 코드를 보면 (헤매다가 결국 구글링한 결과😂)
시간초과한 코드와 마찬가지로 a, b, v 변수를 설정해서 각각 입력받고
day를 주석에 나온 것처럼 낮이 되서 a가 위로 정상에 올라갔을 때는 미끄러지지 않으니
b쪽에만 day - 1해준 것을 day만 빼고 다 넘겨서 정리하면
day = (v - b) / (a - b)
위와 같은 부등식이 된다.
이것을 파이썬식 삼항연산자를 이용해서 if에 해당하는 day == int(day)일 경우에
int(day)를 출력하면 4가 출려되면서 풀이 끄--읏!👏
(위와 같이 삼항연산자를 이용하지 않고, 그냥 바로 int(day)를 출력할 경우 틀린다.)