728x90
SMALL
백준 문제 풀이: 13170 [떨어진 수정]
문제 링크: https://www.acmicpc.net/problem/13170
문제 설명:
망치를 사용하여 떨어진 수정 조각을 모두 제거하려고 합니다. 망치의 힘이 주어졌을 때, 수정 조각을 모두 제거하기 위해 필요한 망치질의 최소 횟수를 계산하세요.
입력 조건:
- 첫 번째 줄에 네 개의 정수 N, K, P, W가 주어집니다.
- N: 수정 조각의 개수 (1 ≤ N ≤ 1,000,000)
- K: 필요 없는 입력값 (문제에서 추가적인 정보로 주어질 수 있음)
- P: 각 수정 조각을 제거하기 위해 필요한 총 힘 (1 ≤ P ≤ 1,000,000,000)
- W: 망치의 한 번 타격으로 제거할 수 있는 힘 (1 ≤ W ≤ 1,000,000,000)
출력 조건:
- 수정을 제거하기 위해 필요한 최소 망치질의 횟수를 출력합니다.
문제 해결 코드
#include <iostream>
#include <cmath> // ceil() 함수를 사용하기 위한 헤더
using namespace std;
int main() {
int N, K, W;
double P;
cin >> N >> K >> P >> W; // 망치의 세기는 실수형으로 입력받습니다.
int cnt = ceil(P / W); // 올림을 통해 필요한 횟수를 계산합니다.
cout << cnt << '\n';
return 0;
}
코드 설명
위 코드는 필요한 망치질 횟수를 계산합니다.
- 입력 처리:
- `P`는 각 수정 조각을 제거하는 데 필요한 총 힘입니다.
- `W`는 망치 한 번의 타격으로 제거할 수 있는 힘입니다.
- 계산:
- `ceil(P / W)`를 사용하여 올림 계산을 수행하여 최소 망치질 횟수를 계산합니다.
시간 복잡도 분석:
- 입력과 계산 모두 O(1)입니다.
결과
다음은 입력 예시와 출력 결과입니다:
입력:
5 3 15 4
출력:
4
수정을 제거하기 위해 망치를 최소 4번 휘둘러야 합니다.
다른 접근 방식이나 개선 사항이 있다면 댓글로 공유 부탁드립니다!
728x90
LIST
'BAEKJOON > 수학' 카테고리의 다른 글
백준 18108번 [1998년생인 내가 태국에서는 2541년생?!](JAVA) -yes6686- 티스토리 (0) | 2025.01.08 |
---|---|
백준 25201번 [보드 뒤집기 게임](C++) -yes6686- 티스토리 (0) | 2025.01.08 |
백준 2166번 [다각형의 면적](C++) -yes6686- 티스토리 (0) | 2025.01.04 |
백준 32929번 [UOS 문자열](C++) -yes6686- 티스토리 (0) | 2025.01.03 |
백준 4030번 [포켓볼](C++) -yes6686- 티스토리 (0) | 2024.12.31 |