본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 2765 : 자전거 속도

반응형

https://www.acmicpc.net/problem/2765

 

2765번: 자전거 속도

입력은 여러 줄의 데이터로 구성된다. 각 데이터는 지름, 회전수, 시간이 공백으로 구분되어 주어진다. 지름은 inch단위의 실수이며, 회전수는 정수이다. 시간은 초단위의 실수로 주어진다. 입력

www.acmicpc.net

간단한 계산 문제였습니다.

 

📕 풀이방법

📔 입력 및 초기화

 1. case번호를 출력하기 위한 변수 cnt를 선언 후 while loop를 돕니다. 2. loop를 돌면서 inch단위의 바퀴지름 diameter, 초당 회전수 rotated, 측정 시간(초) sec을 선언 후 입력받습니다. 3. 입력 종료 시기는 rotated가 0이 되면 break하는 식으로 구현합니다.

📔 풀이과정

 moved를 선언해 총 이동거리를 계산한 값을 저장합니다. 총 이동거리는 바퀴의 둘레 * 회전수로 나타낼 수 있습니다.

바퀴의 둘레는 지름 * pi이므로 총 이동거리 : 지름 * pi * 회전수가 됩니다. 지름이 현재 inch단위이므로 mile단위로 바꾼 지름을 적용해야하며 지름 / (5280 * 12) * pi * 회전수가 최종 공식이 됩니다.

📔 정답출력

정답에 맞춰 적절히 출력합니다.


📕 Code

#include <bits/stdc++.h>
#define pi 3.14159265359
using namespace std;
int cnt;
int main(){
    while(1) {
        cnt++;
        double diameter, rotated, sec;
        cin >> diameter >> rotated >> sec;
        if(!rotated) break;
        double moved = diameter / (5280.0 * 12.0)* rotated * pi ;
        printf("Trip #%d: %.2f %.2f\n", cnt, moved, moved / sec * 3600);
    }
}