728x90
문제 링크: https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
❌ 1차시도 실패 (시간초과)
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 나무높이v, 낮에a미터 올라가고 밤에 b미터 내려감
# 끝까지 올라가려면 며칠 걸리는지?
# 정상 도달 후 미끄러지지 않음
# 1차시도(시간초과)---------------------
import sys
a,b,v=map(int,input().split())
# i는 걸린 일수 (반복문 돌리기!) for i in range(1,sys.maxsize):
if i*(a-b)<v<=i*(a-b)+a:
print(i+1)
break
|
cs |
시간초과가 나왔다....
시간제한을 보니.... ㅋㅋㅋㅋ
얄짤없는 단호박 멘트가 있었당
0.15초 시간안에 우리는 많은 일을 할 수 있구나라고 깨달으면서....
다시 방법을 생각해보았다.
❓ 정답은 ??
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#2차시도(성공)------------------------
a,b,v=map(int,input().split())
x=(v-b)/(a-b)
# x가 정수일수도 있고 소수일수도 있음
# 정수인경우: 낮시간 꼬박해서 정상 도달
# 소수인 경우: 낮시간 중간에 정상도달
#정수인 경우
if x==int(x):
print(int(x))
#소수인 경우 int하면 버림되니까 1 더해줌
else:
print(int(x)+1)
|
cs |
💯 풀이 과정
x를 걸린 일수라고 하면
v = a*x - b * (x-1)이라고 할 수 있다.
우리가 구하고자 하는 x에 대해서 정리해보자면
x=(v-b)/(a-b) 임!! 하지만 이 결과 값이 아래와 같이 분류할 수 있다!
# x가 정수일수도 있고 소수일수도 있음
# 정수인경우: 낮시간 꼬박해서 정상 도달
# 소수인 경우: 낮시간 중간에 정상도달
😎오늘의 한줄평: 달팽이는 귀엽지만 시간초과 달팽이는 싫다🐌
728x90
'😁 빅데이터 문제 풀기 & Study > - BAEKJOON 문제' 카테고리의 다른 글
[10039번] 평균 점수 / python3 (오랜만에 힐링문제) (0) | 2021.11.13 |
---|---|
[10828번] 스택 / python3 (닌텐도 코딩테스트 같은 느낌?) (0) | 2021.11.12 |
[4673번] 셀프 넘버 / python3 (재도전 후 풀어냈으나...) (0) | 2021.11.11 |
[1929번] 소수 구하기 / python3 (다시 만난 소수) (0) | 2021.11.11 |
[1181번] 단어 정렬 / python3 (2차원 리스트 활용하기) (0) | 2021.11.09 |