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 |
Tags
- Mnemonic
- bip39
- three.js
- 리액트
- Blockchain
- 기본수학1단계
- Storybook
- 우선순위 큐
- Console
- 기본 수학 2단계
- 알고리즘
- SASS
- 프로그래밍
- TypeScript
- frontend
- 니모닉
- 백준
- 풀이
- scss
- 에러
- 블록체인
- React
- baekjoon
- algorithm
- SVG
- C++
- 지갑
- 스토리북
- 코딩
- priority queue
Archives
- Today
- Total
Moong
[백준 2869번][C++] 백준 달팽이는 올라가고 싶다 본문
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
풀이
Algorithm
- 우선 날짜를 어떻게 세어주어야 할지 생각해봅니다.
- 막대를 모두 올라가게 되는 시점은 마지막 날 낮이겠죠? 다시 내려올 필요가 없으니까요!
- 이걸 알아냈으면, 이제 나머지 날에는 하루에 (A-B)만큼 올라감을 알 수 있습니다.
- 그렇다면 마지막 날 전까지는 적어도 (V-A) 만큼을 올라가야겠죠?! (마지막 날 A만큼은 무조건 올라갈거니까요)
- 그래서 V-=A를 해주고, count에도 마지막 날 낮에 올라가는 그 하루를 미리 세어 줍니다. (count=1;)
- 마지막 날 전까지 올라가는 데 며칠 걸리는지 구하기
- 하루에 (A-B)만큼 올라갈 수 있으니, n일 후에는 (A-B)*n만큼 올라갈 수 있습니다.
- 이때, V <= (A-B)*n이 되는 n을 구하면 되겠죠?
- n = V/(A-B)가 됨을 알 수 있습니다. 그런데, 여기에서 n은 정수이기 때문에 나머지가 발생하는 경우 몫에서 1을 더해주어야 합니다.
- 그래서 간략한 if문을 써주었어요. 나머지가 없는 경우에는 count에 V/(A-B)를 더해주고, 나머지가 있으면 count에 V/(A-B)+1을 더해줍니다.
- count를 출력하면 끝!
code
#include <iostream>
#include <string>
using namespace std;
int main() {
int V, A, B, count = 1; // 마지막 날 낮에 올라가는거 미리 세어주기
cin >> A >> B >> V;
V -= A; // 마지막 날 낮에 올라가는거 빼주기!
// 나머지가 있는 경우엔 몫에서 +1을 해주기!
count += (V % (A - B) == 0 ? V / (A - B) : V / (A - B) + 1);
cout << count << '\n';
return 0;
}
'Baekjoon' 카테고리의 다른 글
[백준 1011번][C++] 백준 Fly me to the Alpha Centauri (0) | 2021.01.14 |
---|---|
[백준 10757번][C++] 백준 설탕 배달 (0) | 2021.01.11 |
[백준 10250번][C++] 백준 ACM 호텔 (0) | 2021.01.07 |
[백준 1712번][C++] 백준 손익분기점 (0) | 2021.01.06 |
[백준 10809번][C++] 백준 알파벳 찾기 (0) | 2021.01.06 |
Comments