본문 바로가기

국비교육/국비교육 복습

Day03_condition_Test06 : 과속 단속 카메라 (나누기 연산의 몫 활용)

(Q) 과속단속 카메라 프로그래밍

다음 요구사항에 맞는 과속단속 카메라용 프로그램을 구현하세요

- 50km/h를 초괗는 속도로 달리는 자동차를 단속합니다

- 벌금은 제한속도보다 10km/h 늘어날 때마다 10000원씩 증가

- 벌금은 시작이 30000원 입니다

- 벌금은 최대 70000원 입니다

자동차 속도를 입력받아서 예상되는 벌금을 출력하는 프로그램을 구현

 

package day03;

import java.lang.*;

public class Day03_condition_Test06 {

	public static void main(String[] args) {

		int finePerTenKm = 10000;
		int initialFine = 30000;

		int v = 300;
		int limitV = 50;

		int over = v - limitV;
		int overCount = over / 10;
		
		boolean overTF = v >= limitV;

		int fine;
		if(overTF) {
			fine = initialFine + finePerTenKm * overCount;
			if(fine >= 70000) {
				fine = 70000;
			}
		}

		else {
			fine = 0;
		}

		System.out.println("벌금은 " + fine + "원 입니다");

	}

}

 

1) 특정 단위당으로 무엇인가를 부과할 때 나눗셈의 몫을 생각한다

 

 

** 변수를 너무 많이 생성한 것 같다.

특히 벌금이 70000원 이하일 때 사용한 overCount 변수는 그냥 수식으로 쓰는게 더 낫지 않았을까

fine = initialFine + finePerTenKm * (over / 10);