※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 15830번 문제인 싱크홀이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/15830
15830번: 싱크홀
돌의 초기 수평 속력 V, 구멍의 너비 W, 구멍의 실제 깊이 D가 주어진다. V, W, D 의 단위는 각각 m/s, m, m 이다.
www.acmicpc.net
처음에 벽에 부딛힐 때까지 걸리는 시간은 W/V와 같이 계산할 수 있고, 이를 주어진 낙하거리 계산 식에 집어넣어 처음에 벽에 부딛힐 때까지 낙하한 거리를 계산할 수 있다.
한번 벽에 부딛힐 때마다 다음 벽에 부딛힐 때까지 걸리는 시간이 1.25배가 됨을 이용해 반복문으로 시뮬레이션을 직접 돌려 문제를 해결하자.
바닥과 벽에 동시에 부딛히는 입력은 주어지지 않는다는 줄글을, 즉 실수 자료형을 이용해 구현해도 경계값에서의 오차값에 대한 걱정을 덜 수 있음을 확인하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
typedef long double ld;
ld V, W, D, DD;
ld T;
int ans = -1;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> V >> W >> D;
T = W / V;
while (DD < D) {
ans++;
DD += 5 * T * T;
T *= 1.25;
}
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 15819 // C++] 너의 핸들은 (0) | 2023.01.13 |
---|---|
[BOJ 15821 // C++] 낚이고 낚아라 (0) | 2023.01.13 |
[BOJ 15829 // C++] Hashing (1) | 2023.01.13 |
[BOJ 6604 // C++] Matrix Chain Multiplication (0) | 2023.01.13 |
[BOJ 15818 // C++] 오버플로우와 모듈러 (0) | 2023.01.13 |