문제
현재 키 K, 목표 키 W, 신발 한 켤레당 증가 높이 M이 주어질 때, 목표에 도달하기 위한 최소 신발 수를 구하라.
입력
K, W, M이 주어진다.
출력
필요한 최소 신발 수를 출력한다.
예제
| 입력 | 출력 |
|---|---|
180 185 3 | 2 |
풀이
키 차이를 신발 높이로 나누어 올림한다.
- 차이
W - K를 구한다 - 차이가 0 이하이면 0을 출력한다
- 양수이면
ceil(차이 / M)을 출력한다 (정수 올림 나눗셈)
핵심 아이디어: 올림 나눗셈은 k/m + (k%m != 0)으로 구현한다.
코드
#include <iostream>
using namespace std;
int main()
{
int k, w, m;
cin >> k >> w >> m;
k = w - k;
if (k <= 0)
cout << 0;
else
{
w = k / m;
if (k % m)
++w;
cout << w;
}
return 0;
}복잡도
- 시간: O(1)
- 공간: O(1)