나도코딩 자바 기본편_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타 만들어서 가고 싶다. 영타 연습 좋아... 정말 재밌어...!
'공부를 하자! > 나도코딩 자바 기본편' 카테고리의 다른 글
[나도코딩 자바 기본편] 11일차: 다차원 배열 순회, 아스키 코드 (0) | 2024.12.02 |
---|---|
[나도코딩 자바 기본편] 10일차: 배열, 배열 순회, 다차원 배열 (0) | 2024.12.01 |
[나도코딩 자바 기본편] 8일차: 이중 반복문, Break, Continue (0) | 2024.11.24 |
[나도코딩 자바 기본편] 7일차: For, While, Do While (0) | 2024.11.24 |
[나도코딩 자바 기본편] 6일차: IF, Else If, Switch Case (0) | 2024.11.22 |