문제 : boj6763
필요 알고리즘 개념
- 구현
- 문제에 제시된 대로 구현해주면 된다.
※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.
풀이
1. gap = 차 속도 - 속도 제한
2. gap <= 0 이라면 속도 제한을 넘지 않았으므로 Congraturations, ... 을 출력해주고 종료한다.
3. 이후 gap<=20, gap<=30, gap>30 에 따라 각각 100, 270, 500을 정해진 문자열 형식대로 출력해주면 된다.
자바의 경우 String.format() 으로 형식을 지정할 수 있고, System.out.printf()도 동일하게 형식을 지정해서 출력해줄 수 있다.
코드 : github
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
private int getPenalty(int gap) {
if (gap <= 0)
return 0;
if (gap <= 20)
return 100;
if (gap <= 30)
return 270;
return 500;
}
private void solution() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int limit = Integer.parseInt(br.readLine());
int cur = Integer.parseInt(br.readLine());
int gap = cur - limit;
if (gap<=0) {
System.out.println("Congratulations, you are within the speed limit!");
return;
}
System.out.printf("You are speeding and your fine is $%d.", getPenalty(gap));
}
public static void main(String[] args) throws Exception {
new Main().solution();
}
}
'PS > BOJ' 카테고리의 다른 글
백준 2563 - 색종이 (자바, C, C++, node.js, Kotlin, Python, C#) (1) | 2022.11.29 |
---|---|
[자바] 백준 23972 - 악마의 제안 (java) (0) | 2022.11.28 |
[자바] 백준 6750 - Rotating letters (java) (0) | 2022.11.26 |
[자바] 백준 2162 - 선분 그룹 (java) (0) | 2022.11.26 |
[자바] 백준 4375 - 1 (java) (2) | 2022.11.26 |
댓글