병갈이 블록

HackerRank - 랭크 매기기. 본문

개발공부 이야기(New)/알고리즘

HackerRank - 랭크 매기기.

woojang 2021. 2. 4. 01:05

2가지 배열을 입력값으로 받는다.

1. 이미 기록된 랭크 점수.(중복건 존재. 내림차순으로 정렬됨.)

2. 랭크를 매길 플레이어의 점수.(중복건 존재. 오름차순으로 정렬됨.) **샘플 데이터에도, 설명글에도 중복건에대한 언급이 없어서 중복건이 없을 것이라고 생각했다. 커밋 샘플 데이터를 보니 중복데이터가 존재함.

 

접하게된 문제 1.

성공건은 정상 결과를 리턴하였으나, 특정건수 이상이 넘어가는 대량 배열 건의 경우 타임아웃 발생.

-> 사실, 컬렉션 클래스를 바꿔보기도 하고 이것저것 수정을 해보았지만 개선이 안됨.

-> 커뮤니티 글에서 힌트를 얻음. 힌트의 전제는 두개의 배열이 각각 정렬 된 상태로 들어온다는 것.

-> 랭크의 배열은 뒤에서부터 체크하고, 이미 추가된 위치 이전의 위치까지 확인 할 필요가 없다.(다음에 들어올 플레이어 스코어가 이전에 넣은 플레이어 스코어 값보다 크거나 같기 때문.) 추가 된 위치부터 앞쪽만 체크하면 됨. (** 시간문제는 해결.)

 

접하게 된 문제 2.

정상적이지 않은 결과값을 리턴하는 케이스가 발생함.

-> 이미 위에서 언급한 내용인데, 플레이어의 점수에 중복건이 있을 상황을 예상하지 못함. (샘플 데이터와 예제에 해당 케이스도 없었고, 설명글에도 언급이 없었음)

-> 책에서 본 내용이긴 한데 특이하거나 극단적인 데이터 입력을 고려 했어야 했다. 나의 미스..

 

접하게 된 문제 3.

자잘한 수정사항들이 발생.

-> 바로 코드로 구현하려고 한 문제로 생각된다.

-> 노트로 다양한 케이스를 논리적으로 처리되는 과정을 도식화 하고 그 결과를 토대로 디테일한 코드를 구현 했어야 했다.

 

Comments