공부를 하자!/나도코딩 자바 기본편

[나도코딩 자바 기본편] 9일차: 퀴즈4

kimchopchop 2024. 11. 30. 11:10

나도코딩 자바 기본편_9일차(24.11.29)

 

<퀴즈 4>

-조건문을 활용하여 주차 요금 정산 프로그램을 작성하시오

 

-조건

1) 주차 요금은 시간당 4,000

2) 일일 최대 요금은 30,000

3) 경차/장애인 차량은 최종 요금에서 50% 할인

(장애인 차량: 직접 운전 & 탑승 모두)

 

-예시

1) 일반 차량 5시간 주차: 20,000

2) 경차 5시간 주차: 10,000

3) 장애인 차량 10시간 주차: 15,000

 

-실행 결과

1) 일반 차량 5시간 주차: 주차 요금은 20000원입니다.

2) 경차 5시간 주차: 주차 요금은 10000원입니다.

3) 장애인 차량 10시간 주차: 주차 요금은 15000원입니다.

 

내 코드 (장애인 차량 10시간 주차)

int hour = 10; // 시간

int charge = hour * 4000; // 요금

int max = 30000; // 일일 최대 요금

 

boolean disabled = true; // 장애인 차량

boolean small = false; // 경차

 

if (charge > max) {

charge = max;

}

 

if (disabled) {

System.out.println("주차 요금은 " + charge / 2 + "원입니다.");

} else if (small) {

System.out.println("주차 요금은 " + charge / 2 + "원입니다.");

} else {

System.out.println("주차 요금은 " + charge + "원입니다.");

}

 

 

선생님 코드 (장애인 차량 10시간 주차)

 

int hour = 10; // 주차 시간

boolean isSmallCar = false; // 경차 여부

boolean withDisabledPerson = true; // 장애인 차량 여부

 

int fee = hour * 4000; // 주차 정산 요금(시간당 4000)

 

// 30000원 초과시 일일 최대 요금으로 수정

if (fee > 30000) {

fee = 30000; // 일일 최대 요금 적용

}

 

// 경차 또는 장애인 차량인 경우 50% 할인

if (isSmallCar || withDisabledPerson){

fee /= 2; // 50퍼센트 할인 적용

// 방법2) fee = (int) (fee*0.5f);

// 방법3) fee = 0.5f;

}

 

// 실행 결과 출력

System.out.println("주차 요금은 " + fee + "원입니다.");

 

선생님 코드랑 내 코드 비교해보니까 코드를 '지저분하게' 짠다는 게 뭔지 알겠다. max 변수 따로 선언할 필요도, 굳이 else if 까지 쓸 필요도 없었는데 너무 복잡하게 생각했다. 어려워 보일수록 간단하고 단순하게 생각하자. 물론 그게 제일 어렵겠지만. 그래도... 비록 엉망진창 코드지만 의도대로 작동하는 게 기쁘고 신기했다. "이게 왜 되지...?" 라는 유명한 코딩 밈을 비로소 이해하게 되었다...!!! 이번 주는 김장 때문에 3박 4일 본가에 다녀오느라 진도를 별로 못 나갔다. 대신 그동안 배웠던 내용을 복습했다. 선생님이 설명을 워낙 잘해서(나도코딩 선생님... 당신은 최고입니다...) 하나하나 따로 보면 아직 막 그렇게까지 어려운 건 없는데(아 물론 이중반복문은 빼고...^^)  와르르 쏟아 놓고 보면 헷갈린다. 그래도 너무 겁먹지 않기로 했다. 다음 주까지 기본편 1회독 끝내고 복습 한 번 더 돌리는 게 지금의 목표다. 시간이 좀 걸리더라도 개념을 잘 잡고 가고 싶다.

 

오늘의 한마디

드디어 200타 달성!!! 키보드 안 보고 치면 130타 겨우 나오는 독수리였는데 이제 모니터만 보고 칠 수 있게 됐다. 개강 전까지 200타 만드는 게 목표였는데 조금 더 욕심내도 되겠지. 200타 넘겼으니까 이왕이면 300타 만들어서 가고 싶다. 영타 연습 좋아... 정말 재밌어...!