반응형
알고리즘
python 달팽이는 올라가고 싶다(2869)
1. 문제
https://www.acmicpc.net/problem/2869
2. 풀이
- 값을 구하기 위해 올림을 해야하는데 올림을 할 때 math 모듈을 사용해야해서 미리 math를 import를 해준다
- a-b를 통해 하루 올라간 거리 계산
- v-b를 통해 마지막 날 낮에 도착했을 때 마지막날 밤에 내려오는 거리를 빼준다
- 전체 이동할 거리를 하루 이동한 거리로 나누어 주고 올림을 해준다. 1.2일도 결국은 2일이 걸린 것이기 때문
- 이 문제는 시간이 짧기 때문에 for문을 사용하면 시간복잡도에 의해 시간초과에 걸린다.
import math # math모듈 사용을 위한 import
a, b, v = map(int, input().split())
one_day = a - b # 하루 올라간 길이 계산
total_v = v - b # 마지막날 낮에 도착하면 밤에 내려오지 않기 때문에
total_day = math.ceil(total_v/one_day) # 전체 이동거리에서 하루 올라간 길이 나눠주기
print(total_day)
[새로 배운내용]
- math모듈을 사용한 올림, 내림, 반올림
- 참고 : https://wikidocs.net/21113
import math
## 올림
math.floor(3.14) #결과는 3
math.floor(-3.14) #결과는 -4
## 내림
math.floor(3.14) #결과는 3
math.floor(-3.14) #결과는 -4
## 다양한 내림
>>> math.trunc(-3.14) #결과는 -3 / trunc()함수는 내림을 하더라도 0으로 향함
>>> math.floor(-3.14) #결과는 -4 / floor() 함수는 무조건 아래만 향해 내림
>>> int(-3.14) #결과는 -3 / trunc()함수와 같음
## 반올림
round(3.1415) #결과는 3 / 2번째 인자가 생략 되면 소수점 반올림
round(3.1415, 2) #결과는 3.14 / 소수점 2째 자리에서 반올림
round(31.415, -1) #결과는 30.0 / 2번재 인자에 마이너스 사용 가능
[느낀점]
수학적인 부분에서 어렵지 않아서 파이썬에서 올림하는 방법만 잘 알고 있으면 쉽게 풀 수 있었다.
반응형
'알고리즘 > Java' 카테고리의 다른 글
[python] 프로그래머스 방금그곡(카카오 신입공채) (0) | 2021.12.26 |
---|---|
[python] 백준 설탕 배달(2839) (0) | 2021.12.26 |
[python] ACM호텔(10250) (0) | 2021.12.25 |
[python] 백준 더하기 사이클(1110) (0) | 2021.12.25 |
[JAVA] 프로그래머스 제일 작은 수 제거하기 (0) | 2021.11.12 |