Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- API문서
- 백준
- IT
- DATABASE
- 디비
- OS
- node.js
- 컴퓨터보안
- 인터럽트
- ES6
- 데이터베이스
- NEST
- 보안
- 되추적
- S3
- AWS
- access control
- 자바스크립트
- 백트래킹
- 탐욕기법
- 병행제어
- node
- 컴퓨터 보안
- 알고리즘
- DB
- 운영체제
- rest docs
- 노드
- 컴퓨터
- 스프링부트
Archives
- Today
- Total
개발스토리
백준 2869)달팽이는 올라가고 싶다 본문
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
실패한 코드(시간 초과)
a, b, v = map(int, input().split(' '))
day = 1
day_one = a - b
while True:
if day_one >= v:
print(day)
break
else:
day += 1
if day_one * (day - 1) + a >= v:
print(day)
break
성공한 코드
import sys
import math
a, b, v = map(int, sys.stdin.readline().split(' '))
day_one = a - b
day = (v-a) / day_one + 1
print(math.ceil(day))
시간 초과에 안 걸리기 위해서 입력 방식도 바꾸고, math.ceil을 사용해서 계산 방식을 바꿨다.
v - a는 막대 길이에서 마지막 날 올라간 거리를 뺀 것이고, v - a를 하루동안 하루동안 올라가는 거리인 day_one으로 나눴다. 그 결과에서 1을 더해주어야 정상에 올라간 day를 구할 수 있다. 그리고 나누기 과정에서 ceil 함수를 통해 올림 처리 해주었다. (4.4일은 4일이 아니라 5일이기 때문이다.)
'알고리즘' 카테고리의 다른 글
백준 10809)알파벳 찾기 (0) | 2020.12.28 |
---|---|
DFS(깊이 우선 탐색) (0) | 2020.12.19 |
크루스칼 / 다익스트라 알고리즘 (0) | 2020.11.20 |
최소 비용 신장 트리 정의와 프림 알고리즘 (0) | 2020.11.20 |
Backtracking_동전 던지기 (0) | 2020.11.12 |
Comments