프로그래머스 주차 요금 계산 JAVA

sundays·2022년 9월 21일
0

문제

주차 요금 계산

풀이

HashMap 쓰는 문제는 더 딥하게 들어가면 진짜로 무한정 길어지는 것 같다
나는 이 문제를 일단 차 번호당 여러개의 레코드를 넣을 수 있는 HashMap에 List 안에 생성자를 선언한것으로 가지고 나누어 계산 하려고했다
다른 분들이 쓰는 코드도 역시 생각대로 길긴 했다. 하지만 내가 참고한 코드에서는 입차시에 쓰고 출차시에 제거하는 hash를 쓴게 더 마음에 들어서 해당 내용을 참고했다.

그리고 시간 값을 넣어줄때 다음 코드를 참고한다

	public static int getMinute(String value) {
        String[] t = value.split(":");
        return Integer.parseInt(t[0]) * 60 + Integer.parseInt(t[1]);
    }

너무 단순하고 뭐 할게없는데 이런식으로 캡슐화 하면 좋은거같다
나는 출차시-입차시, 출차분-입차분 이런식으로 계산하려고 했으나 이경우에는 문제가 발생하는데 19:59출차 7:09입차일경우 분의 연산인경우 59-9분까지 10분이 걸림에도 불구하고 출차-입차 연산을 할때는 50이 출력이 되기 때문에 연산이 너무 복잡해진다 이런 경우 그냥 케이스를 추가하면 되겠지만, 한눈에 코드가 확 들어오지않는다 나중에봐도 좋은코드를 만들려면 그런 코드는 과감하게 버린다

result[i] += (Math.ceil(time / (fees[2] * 1.0)) * fees[3]);

그리고 마지막에 요금값을 연산해줄때 Math.ceil 을 쓴다 올림 함수이다. 나누어 떨어지지않으면 그냥 올림을 해버린다

List<Map.Entry<String, Integer>> entryList = new LinkedList<>(record.entrySet());
entryList.sort(Map.Entry.comparingByKey());

그리고 코드에서 HashMap을 keyvalue로 정렬하고 싶어서 일단 사용해봤는데 더 좋은 코드가 왠지 있을 것 같다. 음.. 조금 더 시간을 줄여봐야겠다 시간이 너무 늦었다

전체 코드

전체 코드

profile
develop life

0개의 댓글