본문 바로가기
문제 해결/SWEA

[SWEA] 2477. 차량 정비소

by 자잘 2020. 1. 4.

문제 출처: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV6c6bgaIuoDFAXy

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 2020년 1월 3일에 두문제를 풀려고 했으나 이 문제를 풀지못해 실패했습니다... 나름 핑계를 대보자면 어제는 감기 기운도 심하고 집중을 잘못하긴 했으나 분명히 틀린 부분이 없다고 생각했는데 42개에서 틀렸습니다가 나왔습니다. 오늘(1월 4일) 몸을 좀 회복하고 다시 봤더니 우선 순위 큐 구현을 잘못해서 틀린 것이었습니다. 사실 우선순위 큐를 사용할 필요도 없었습니다. 확실히 우선순위 큐를 사용할 때에는 조심해야할 필요가 있습니다. 세세하기 조건을 따져서 비교연산자를 구현해야겠네요. 굉장히 사소한 실수였지만 깨달음을 얻을 수 있었습니다. STL공부가 너무 재미없어서 공부량을 많이 줄였는데 동기부여도 되었습니다.

 

 문제는 지갑을 두고간 손님을 찾기위해 손님의 접수 창구와 정비 창구가 같은 창구를 이용한 사람들의 번호들을 찾아 그 합을 출력하는 것이 문제입니다. 각 창구에서 걸리는 시간이 주어지며 손님이 도착하는 시간이 주어집니다. 그리고 접수 창구와 정비 창구르 이용하는 우선 순위가 있는데 이를 지키면서 어떤 손님이 어느 창구를 이용했는지 시뮬레이션해주시면 됩니다.

 

 제 코드가 많이 지저분하네요 이차원 배열로 짜면 더 깔끔했을텐데 생각을 못했네요. 각 배열의 의미는 코드의 주석에 달아놓았습니다. 제 코드의 방식은 먼저 접수 창구에서 정비 창구의 대기열(q2)로 넘길 사람이 있는지 체크합니다. 그리고 현재 시간과 비교하여 도착한 손님이 있으면 접수 창구의 대기열(q1)로 넣어 주고 각 창구에 비어있는 사람이 있으면 큐에서 팝하여 넣어주게 됩니다. 저는 여기서 정비 창구 대기열(q2)를 우선 순위 큐로 구현했는데 비교 연산자 구현이 미숙하여 계속 틀렸습니다. 혹시나 저처럼 우선순위 큐로 구현했는데 계속 틀렸다면 연산자 구현이 정확한지 체크해보시길 바랍니다. 앞서도 말씀드렸듯이 저는 우선순위 큐로 짤 필요가 전혀 없어서 그냥 큐로 구현했습니다.

'문제 해결 > SWEA' 카테고리의 다른 글

[SWEA] 4012. 요리사  (0) 2020.01.05
[SWEA] 4008. 숫자 만들기  (0) 2020.01.05
[SWEA] 2383. 점심 식사 시간  (0) 2020.01.02
[SWEA] 2382. 미생물 격리  (0) 2020.01.02
[SWEA] 2117. 홈 방범 서비스  (0) 2020.01.02