코딩테스트

[프로그래머스/자바] 주차 요금 계산_92341

라임온조 2023. 8. 25. 15:00

문제 및 코드

1. 생각

// 생각
    // map
// 구현
    // fees 값 저장
    // records를 돈다
        // 각 원소는 split해서 시간, 번호, 입출차를 구한다
        // map에서 번호를 찾는데 값이 있다
            // map의 상태값이 IN이다
                // map의 누적 시간을 지금들어온 시간과 map에 있는 시간의 차이로 저장    
            // map의 시간을 지금 들어온 시간으로 저장
            // map의 상태를 지금 들어온 상태로 저장
        // map에서 번호를 찾는데 값이 없다
            // map에 해당 번호의 상태에 맞는 값들을 넣는다
    // map을 돈다
        // 상태가 in
            // 누적 시간에 23:59와 저장된 시간 차를 더함
        // 누적 시간에 따라 요금 계산
        // 차량번호와 요금을 같이 저장

2. 회고

  • 로직 생각은 무난하게 했는데 구현이 힘들었음
  • 시간 다루기와 map에 있는 걸 어떻게 정렬하지? 가 큰 고민이었음.. 결국 다른 내용 참고하여 해결함
  • 근데 생각나는대로 막 코드를 작성하다보니 코드가 좀 더러움. 더 좋게 바꾸면 좋을듯

 

3. 기억

1) TreeMap

  • Map처럼 저장을 하긴 함. 그런데 트리를 이용해서 key를 오름차순으로 정렬하며 map 저장을 진행함. 즉 key값의 순서 보장이 가능.

TreeMap과 HashMap의 차이 정리

2) LocalTime

  • import java.time.*; 필요
  • LocalTime.parse("")
    • String을 LocalTime 형태로 변환한 값을 리턴

3) Duration

  • import java.time.*; 필요
  • Duration.between(이전, 다음)
    • double 형태의 값을 리턴
    • toMinutes() 메소드 적용하면 두 시간 차이를 분으로 리턴
    • toHours() 메소드 적용하면 두 시간 차이를 시로 리턴

4. 체크

풀이 횟수 시간 정답 여부 참고 여부
1 1시간 30분 O O