-
[백준/BOJ] 2765번 : 자전거 속도 (JAVA / 자바)백준 2022. 2. 1. 17:59
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/2765
- 문제 -
난이도 브론즈 3 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
풀이 방법
주어진 식대로 풀면 된다. 파이 값을 알려줬으니 파이값과 입력받은 지름을 곱하면 둘레가 된다. 둘레와 회전 횟수를 곱하면 충 이동 거리가 된다. 하지만 이 이동 거리는 인치이고 출력은 마일값으로 출력해야한다. 그렇기때문에 힌트에 나와있는 값을 보고 /12을 하고 /5280을 하면된다. 그럼 이 값이 distance가 되는 것이다.
다음 MPH는 distance에다 걸린 시간을 나눠주면 되는데, 이 입력되는 기준이 초기준이다. 그렇지만 구해야하는건 per hour다 시간으로 바꿔야하는 것이다. 그렇기에 입력된 시간에 / 3600을 해주면 된다. 그리고 나온 값을 distance에 나너준다. 이 식들만 잘 이해하면 어렵진 않다. 코드로 보자.
-풀이-
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //해당 케이스 수 int i = 1; //테스트 케이스 수가 정해져있지 않기 때문에 무한루프 사용 while(true) { StringTokenizer st = new StringTokenizer(br.readLine()); //지름, 회전수, 초 순서로 변수 선언 double A = Double.parseDouble(st.nextToken()); double B = Double.parseDouble(st.nextToken()); double C = Double.parseDouble(st.nextToken()); //회전수가 0이 오면 반복문 종료한다. if(B == 0) { break; } //연산할때 사용할 초를 시간으로 바꿔준다. 3600을 나눠도 되고, 60으로 두번 나눠도 된다. C = (C / 60) / 60; //이동 거리를 밀리거리로 바꾸는 공식 double distance = ((((A * 3.1415927) * B) / 12) / 5280); //MPH를 구하는 공식 double MPH = (distance / C); //print를 한줄만에 끝내도 되고 필자처럼 길어질거같아 여러개로 나눠서 출력문을 작성해도 된다. System.out.print("Trip #" + i + ": "); System.out.print(String.format("%.2f", distance) + " "); System.out.print(String.format("%.2f", MPH)); //출력이 끝나고 다음 케이스 입력시에 줄바뀜을 준다. System.out.println(); //반복이 넘어갈때마다 케이스 수에 1을 더한다. i++; } } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠다.
'백준' 카테고리의 다른 글
[백준/BOJ] 2721번 : 삼각수의 합 (JAVA / 자바) (0) 2022.02.01 [백준/BOJ] 2783번 : 삼각 김밥 (JAVA / 자바) (0) 2022.02.01 [백준/BOJ] 2754번 : 학점계산 (JAVA / 자바) (0) 2022.02.01 [백준/BOJ] 2747번 : 피보나치 수 (JAVA / 자바) (0) 2022.02.01 [백준/BOJ] 2742번 : 기찍 N (JAVA / 자바) (0) 2022.02.01