김로원
고양이만도 못한 개발자
김로원
전체 방문자
오늘
어제
  • 분류 전체보기 (60)
    • 프로그래밍 개념 정리 (4)
    • 디버그 기록 and 트러블 슈팅 (5)
    • 프로그래밍 (10)
      • PHP and Laravel (4)
      • JAVA (0)
      • Spring Boot (0)
      • 리액트 react (5)
      • 자바스크립트, 타입스크립트 (0)
      • 데이터베이스 (0)
      • JPA (0)
      • 리눅스 (1)
      • 윈도우 (0)
      • JSP (0)
    • 코딩 테스트 문제 (39)
      • 프로그래머스 (39)
      • 백준 (0)
    • 디바이스 (2)
    • 달리기 (0)
    • 음악 (0)
    • 고양이 로원이 (0)
    • 유요한 정보 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 노션 이력서
  • 타모임

티스토리

hELLO · Designed By 정상우.
김로원

개발자가 된 집사

프로그래머스  Level 2  자바  주차요금  2022 KAKAO BLIND RECRUITMENT
코딩 테스트 문제/프로그래머스

프로그래머스 Level 2 자바 주차요금 2022 KAKAO BLIND RECRUITMENT

2022. 8. 28. 00:01
반응형

 

 

 

드디어

 

저의 봉인이 해제되었습니다

 

여태까지 코테 문제들을 풀어오면서

 

Hash 관련된 유틸리티 클래스를 쓴적이 없었습니다만

 

(자랑은 아님)

 

이 문제는 안 쓰면 번거로울 것 같아서

 

써버렸습니다

 

개념은 물론 알고있었기에 떠올랐네요

 

그런데 이번 문제가 그렇게 어려운 문제는 아니라는 것...

 

다들 아시리라 생각됩니다

 

시작합니다

 

 

자 먼저

 

TreeMap 객체 두 개

 

각각, 주차장과 요금 정산입니다

 

그리고 ArrayList 한 개를 만들어줍니다

 

HashMap의 형제인 TreeMap 인데

 

요놈은 key 값을 기준으로 정렬을 해줍니다!

 

요놈을 쓴다면 sort를 굳이 안 해줘도 되지요 ㅎㅎ

 

그리고 이 다음,

 

저는 누구나 알아보기 쉬운 코드를 지향하지만

 

요번 문제는 간단히 하려 하면 오히려 길어져버릴 것 같았기에

 

이렇게 작성했습니다

 

복잡미묘...

우선 for문으로 하나하나 가져옵니다. 네

 

그리고 setrecord에 그 하나하나 중 하나를 분해해서 넣어줍니다. 잔인

 

그리고 만약에 3번째 오는 녀석이 "IN" 이라면

 

그냥 얌전히 차량 번호를 키 값으로 시간을 InandOut에 넣어줍니다

 

하지만 "IN"이 아니라면... OUT 이겠죠

 

문제의 조건중에 뜬금없이 OUT 되는 차량은 없습니다

 

그러니 당연히 InandOut 주차장에 뭔가 하나는 들어있겠죠??

 

그럼 일단 정산할 시간을 계산 해서 resultput에 넣어줍니다

(timegap 메서드는 가장 하단에 두겠습니다)

 

그리고 만약 이미 Result에 해당 키값이 있다면

 

replace를 사용해 다시 키값과

 

이미 들어가있던 이용시간을 get으로 가져와 resulput을 더해서 넣어줍니다

 

그리고 주차장에서 차량을 remove로 제거 해줍니다

 

반대의 경우

 

그냥 넣어주고 remove해주면 되겠죵

 

 

그리고 전혀 OUT하고 있지 않은 차량들을 강제출차 시킬

 

for문 하나를 열어줍니다

InandOut에서 안에 있는 키 값들을 keys로 하나씩 가져옵니다

 

이번에도 timegap에 keys로 시간을 가져와

 

강제출차 시간인 23:59와 함께 넣어줍니다

 

그 아래는 위와 같습니다

 

remove를 안 해주는 것만 빼구용

 

remove해버리면 인덱스 문제로 오류가 나요

 

이제 마지막 for문입니다 ㅎㅎ

 

요금 정산입니다

 

저희는 TreeMap을 썼기 때문에

 

그냥 처음부터 하나한 가져와서 요금 계산을 해주면 됩니다!

 

단위 시간으로 나누었을 때 나머지가 있다면

 

단위 요금을 한 번 넣어주는 부분만 주의해주면 됩니다!

 

아마 ArrayList에 바로 넣어주어도 될 겁니다 ㅎㅎ

 

저는 그냥 호다닥 풀다보니 저렇게 작성했네요

 

이상입니다!!

 

감사합니다!!!!

 

 

마지막으로 timegap 메서드입니다

 

 

그럼 이만

 

 

 

 

 

 

 

 

 

 

 

아래는 제가 직접 손수 수작업으로 하나부터 열까지 전부 직접 작성한 커뮤니티사이트 입니다

 

신생커뮤니티라서 많이 삭막하지만 들려주시면 고마울 것 같아요!

 

https://tamoim.com

 

타모임

탕비실 물 좀 마셔도 되냐고 물어본 건물 미화원

tamoim.com

 

728x90
반응형

'코딩 테스트 문제 > 프로그래머스' 카테고리의 다른 글

프로그래머스 Level 1 자바스크립트 삼총사 연습문제  (0) 2022.10.13
프로그래머스 Level 2 자바 오픈채팅방 2019 KAKAO BLIND RECRUITMENT  (0) 2022.09.06
프로그래머스 Level 2 자바 [3차] 방금그곡 2018 KAKAO BLIND RECRUITMENT  (0) 2022.08.27
프로그래머스 Level 2 자바 두 큐 합 같게 만들기 2022 KAKAO TECH INTERNSHIP  (0) 2022.08.24
프로그래머스 Level 2 자바 수식 최대화 카카오 인턴  (0) 2022.08.24
    '코딩 테스트 문제/프로그래머스' 카테고리의 다른 글
    • 프로그래머스 Level 1 자바스크립트 삼총사 연습문제
    • 프로그래머스 Level 2 자바 오픈채팅방 2019 KAKAO BLIND RECRUITMENT
    • 프로그래머스 Level 2 자바 [3차] 방금그곡 2018 KAKAO BLIND RECRUITMENT
    • 프로그래머스 Level 2 자바 두 큐 합 같게 만들기 2022 KAKAO TECH INTERNSHIP
    김로원
    김로원
    개발자가 된 집사 직접 만든 커뮤니티 사이트 - 타모임 - https://tamoim.com

    티스토리툴바