본문 바로가기
코딩테스트/알고리즘

[프로그래머스] 체육복 해설과 자바 소스코드

by 연구자 공학코드 2022. 6. 8.

공지사항

  1. 제가 운영하는 네이버 카페 개발자 커뮤니티 코어큐브(https://cafe.naver.com/ewsncube)에 가입하시면 컴퓨터 관련 학습 자료와 질의응답을 제공받으실 수 있습니다.

728x90
반응형

가장 쉬운 수준의 프로그래머스 알고리즘 문제이다. 하지만 제한사항이 많고 구체적으로 밝혀져 있지 않은 제한사항이 있기 때문에 까다롭다. 문제 내용은 아래의 문제 주소에 가서 확인하면 된다.

 

문제 주소

https://programmers.co.kr/learn/courses/30/lessons/42862

구체적으로 밝혀져 있지 않은 제한사항

  • 여별의 체육복을 가져온 학생 1명마다 여벌의 체육복은 1벌만 있다.
  • 앞번호의 학생과 와 뒷번호의 학생 모두 여벌의 체육복이 있는 경우 앞번호의 학생으로부터 체육복을 빌린다.

문제 해결 순서

  1. 앞번호의 학생으로부터 먼저 체육복을 빌릴 수 있도록 오름차순 정렬한다.
  2. 여벌의 체육복을 가져온 학생이 체육복을 도난 당한 경우 여벌의 체육복을 가져오지 않은 것으로 수정한다.
  3. 체육복을 도난 당한 학생이 여벌의 체육복을 가져온 학생에게 체육복을 빌린다.

자바(Java) 소스코드

GitHub 주소: https://github.com/EngineeringCode/study-coding-test/blob/main/src/net/engineeringcode/codingtest/programmers/HighScoreKit/Greedy/GymClothes/Solution.java

채점 결과

채점 결과

결론

구현할 때 배열 대신에 리스트나 해시를 써서 탐색을 빠르게 하는 접근 방법도 있을 수 있으나 전체 학생의 수가 2명에서 30명 이하이기 때문에 사용하지 않고 빠르게 문제를 푸는 방법을 택했다.

728x90
반응형

댓글