일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- camera
- 하늘풍경
- 85mm 1.8g
- AF-S 18-35mm
- AF-S NIKKOR 85mm f/1.8G
- Photo
- 경치
- af-s 18-35
- 50mm f/1.8G
- 여름성경학교
- AF-S NIKKOR 50mm f/1.8G
- 카메라
- nikkor
- 사진
- AF-S NIKKOR 18-35mm f/3.5-4.5G ED
- spring
- 꽃
- 출사
- 85mm f/1.8G
- 18-35mm
- Nikon
- 니콘
- 풍경
- 렌즈
- daily
- 푸초
- 일상
- D750
- 50mm
- 푸른초장교회
- Today
- Total
병갈이 블록
HackerRank - 랭크 매기기. 본문
2가지 배열을 입력값으로 받는다.
1. 이미 기록된 랭크 점수.(중복건 존재. 내림차순으로 정렬됨.)
2. 랭크를 매길 플레이어의 점수.(중복건 존재. 오름차순으로 정렬됨.) **샘플 데이터에도, 설명글에도 중복건에대한 언급이 없어서 중복건이 없을 것이라고 생각했다. 커밋 샘플 데이터를 보니 중복데이터가 존재함.
접하게된 문제 1.
성공건은 정상 결과를 리턴하였으나, 특정건수 이상이 넘어가는 대량 배열 건의 경우 타임아웃 발생.
-> 사실, 컬렉션 클래스를 바꿔보기도 하고 이것저것 수정을 해보았지만 개선이 안됨.
-> 커뮤니티 글에서 힌트를 얻음. 힌트의 전제는 두개의 배열이 각각 정렬 된 상태로 들어온다는 것.
-> 랭크의 배열은 뒤에서부터 체크하고, 이미 추가된 위치 이전의 위치까지 확인 할 필요가 없다.(다음에 들어올 플레이어 스코어가 이전에 넣은 플레이어 스코어 값보다 크거나 같기 때문.) 추가 된 위치부터 앞쪽만 체크하면 됨. (** 시간문제는 해결.)
접하게 된 문제 2.
정상적이지 않은 결과값을 리턴하는 케이스가 발생함.
-> 이미 위에서 언급한 내용인데, 플레이어의 점수에 중복건이 있을 상황을 예상하지 못함. (샘플 데이터와 예제에 해당 케이스도 없었고, 설명글에도 언급이 없었음)
-> 책에서 본 내용이긴 한데 특이하거나 극단적인 데이터 입력을 고려 했어야 했다. 나의 미스..
접하게 된 문제 3.
자잘한 수정사항들이 발생.
-> 바로 코드로 구현하려고 한 문제로 생각된다.
-> 노트로 다양한 케이스를 논리적으로 처리되는 과정을 도식화 하고 그 결과를 토대로 디테일한 코드를 구현 했어야 했다.
'개발공부 이야기(New) > 알고리즘' 카테고리의 다른 글
HackerRank - Beautiful Pairs (0) | 2021.02.06 |
---|---|
HackerRank - Forming a Magic Square (0) | 2021.02.05 |
HackerRank - Between Two Sets (0) | 2021.02.04 |
big-O 개념 이해하기. (0) | 2021.01.22 |
[코딩 인터뷰 완전분석] 책으로 공부를 시작하며..(책 리뷰 아님!) (0) | 2021.01.22 |