Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- JavaScript
- Android
- 이직
- 코딩시험
- 일일코테
- 데일로코테
- NDK
- 프로그래머스
- Cpp
- MediaCodec
- 코딩테스트
- 3진수
- 기술인터뷰
- C++
- 데일리코테
- sdkmanager
- 안드로이드
- 커맨드라인툴
- 크레인인형뽑기
- 코테
- 개발영어
- 알고리즘
- pyenv
- CMAKE
- AAudio
- Python
- 알고리듬
- MediaExtractor
- 파이썬설치
- 완주하지못한선수
Archives
- Today
- Total
Nomad Engineer
[일일코테 Day7] K번째 수 본문
문제
programmers.co.kr/learn/courses/30/lessons/42748
코딩테스트 연습 - K번째수
[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]
programmers.co.kr
입력 배열에서 주어인 영역에 대해서 잘나낸뒤 잘라낸 결과에서 k번째 요소를 확인 하는 함수.
Javascript
function solution(array, commands) {
var answer = [];
const commandCache = {}
commands.forEach(command => {
const start = command[0] -1;
const end = command[1];
const index = command[2]-1;
// const commandKey = ('' + start) + end
let value;
// if (commandCache[commandKey]) {
// value = commandCache[commandKey][index];
// } else {
const subArray = array.slice(start, end)
.sort((a, b) => a-b);
// commandCache[commandKey] = subArray;
value = subArray[index];
// }
answer.push(value);
})
return answer;
}
실수
채점을 하게되면 계속 2번쨰 채점에서 실패하게 되는데, 결국 정렬을 잘 하지 못하였다. [2, 10] 을 정렬하게 되면 [10, 2]로 정렬이 되는데 이는 javascript 기본 소팅 함수가 이벽을 유니코드로 변환한뒤에 문자열 정렬을 하는것이 원인이었음.
sort()
메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.
삽질
- 성능의 문제일것이라고 생각하고 Cache를 두어 계속 성능에 관련된 해결만 하려고 했다.
- 정렬에도 문제가 있을것이라고 생각했지만 올바른 테스트 케이스를 만들지 못해서 실수를 잡아내지 못했다.
숫자 범위를 1~10 안에서만 한정했는데, 문제가 발생하는 10 이상의 숫자에서 확인을 하지 못했다.
회고
- 무엇인가 Default를 사용할 때는 기본적으로 주어지는것이 어떻게 동작하는지 반드시 확인을 하자.
- 정렬할때 반드시 확인해야 하는 테스트 케이스의 종류를 목록으로 만들어 두면 좋을것 같다.
- 문제를 해결하는 과정에서 각각실패 할 수 있는 포인트들을 나열해 보는것도 도움이 되는것 같다. 예를들어 정렬, 자르기, 인덱싱.
반응형
'개발 > 코딩테스트' 카테고리의 다른 글
[일일코테 Day8] 2016년 - 프로그래머스(레벨1) (0) | 2021.03.03 |
---|---|
[일일코테 Day6] 체육복 - 프로그래머스(레벨1) (0) | 2021.03.01 |
[일일코테 Day4] 신규 아이디 추천 - 프로그래머스(레벨1) (0) | 2021.02.28 |
[일일코테 Day5] 모의고사 - 프로그래머스(레벨1) (0) | 2021.02.28 |
일일코테 Day3 - 완주하지 못한 선수 - 프로그래머스 [level1] (0) | 2021.02.27 |