백준 Speed fines are not fine!

KIMYEONGJUN·2025년 5월 1일
0
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

The input will be two integers.
The first line of input will be speed limit.
The second line of input will be the recorded speed of the car.

If the driver is not speeding, the output should be:
Congratulations, you are within the speed limit!
If the driver is speeding, the output should be:
You are speeding and your fine is $F.
where F is the amount of the fine as described in the table above.

내가 이 문제를 보고 생각해본 부분

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
코드를 사용하여 표준 입력 데이터를 읽어올 BufferedReader 객체를 생성한다.
br.readLine() 메소드를 사용하여 한 줄씩 입력을 읽고, Integer.parseInt()를 사용하여 문자열로 읽은 값을 정수형으로 변환한다.
첫 번째 줄은 속도 제한(speedLimit), 두 번째 줄은 기록된 속도(recordedSpeed)이다.
overSpeed = recordedSpeed - speedLimit; 코드로 속도 제한을 얼마나 초과했는지 계산한다.
if-else if-else 문을 사용하여 overSpeed 값에 따라 벌금(fine)을 결정한다.
overSpeed가 0 이하이면 속도 제한을 초과하지 않은 경우이므로 축하 메시지를 출력한다.
overSpeed가 1 이상 20 이하이면 벌금은 100달러이다.
overSpeed가 21 이상 30 이하이면 벌금은 270달러이다.
overSpeed가 31 이상이면 벌금은 500달러이다.
속도 제한을 초과한 경우에는 계산된 fine 값을 포함하여 벌금 메시지를 출력한다.

코드로 구현

package baekjoon.baekjoon_28;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 백준 6763번 문제
public class Main1009 {
    public static void main(String[] args) throws IOException {
        // BufferedReader를 사용하여 입력을 받습니다.
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // 속도 제한을 정수형으로 읽습니다.
        int speedLimit = Integer.parseInt(br.readLine());

        // 기록된 속도를 정수형으로 읽습니다.
        int recordedSpeed = Integer.parseInt(br.readLine());

        // 속도 제한을 초과한 정도를 계산합니다.
        int overSpeed = recordedSpeed - speedLimit;

        // 속도 초과 정도에 따라 벌금을 계산하고 결과를 출력합니다.
        if(overSpeed <= 0) {
            // 속도 제한을 초과하지 않은 경우
            System.out.println("Congratulations, you are within the speed limit!");
        } else {
            // 속도 제한을 초과한 경우
            int fine = 0;
            if(overSpeed >= 1 && overSpeed <= 20) {
                fine = 100;
            } else if(overSpeed >= 21 && overSpeed <= 30) {
                fine = 270;
            } else if(overSpeed >= 31) {
                fine = 500;
            }
            // 벌금과 함께 결과를 출력합니다.
            System.out.println("You are speeding and your fine is $" + fine + ".");
        }

        // BufferedReader를 닫아 자원을 해제합니다.
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글