반응형
Facts
태이 화장실 청소
패스트캠퍼스 퀴즈 제출
헬스 한시간
코딩테스트 1과 1/2개
Feelings
오늘 시킨 햄버거 설명을 잘못 본 탓에 메뉴 선정을 잘못해서 기분이 안좋다.
그리고 살이 뒤룩뒤룩 찌는 기분이라 기분이 더욱 안좋다.
후덥지근하고 찐득해서 기분이 더 안좋다.
샤워하고 노트북 챙겨 나가서 스터디카페를 가서 다시 써야겠다.
-------------
스터디카페에 와서 패캠 과제를 내고 다시 TIL을 켰다.
재미있다. ㅎㅎ
자주와야겠다.
오늘은 6문제만 풀고 운동가야겠다.
---------------
51분만에 아래와 같은 문제를 풀었다.
기분이 매우 좋당 ㅎㅎ
-----------------
코딩테스트를 한문제 더 풀려고 시도했다.
재귀를 시도하다가 꼬여버렸다.
내일 다시 풀어야지
Findings
TDD로 코딩테스트를 풀었다.
착착 진행되는 그 느낌, 진짜 좋다.
function sortedFrequency(arr, target) {
let start = 0;
let mid;
let end = arr.length-1;
let firtstIndex = getFirstIndex(arr, target, start, mid, end);
let lastIndex = getLastIndex(arr, target, start, mid, end);
return lastIndex - firtstIndex + 1 ? lastIndex - firtstIndex + 1 : - 1;
}
function getFirstIndex(arr, target, start, mid, end) {
let index;
while (start <= end) {
mid = Math.floor((start + end) / 2);
if (arr[mid] < target) {
start = mid + 1;
} else if (arr[mid] > target) {
end = mid - 1;
} else {
if (arr[mid - 1] === target) {
end = mid - 1;
} else if (arr[mid - 1] < target || arr[mid - 1] === undefined) {
index = mid;
break;
}
}
}
return index;
}
function getLastIndex(arr, target, start, mid, end) {
let index;
while (start <= end) {
mid = Math.floor((start + end) / 2);
if (arr[mid] < target) {
start = mid + 1;
} else if (arr[mid] > target) {
end = mid - 1;
} else {
if (arr[mid + 1] === target) {
start = mid + 1;
} else if (arr[mid + 1] > target || arr[mid + 1] === undefined) {
index = mid;
break;
}
}
}
return index;
}
lastIndex를 반환하는 함수와 firstIndex를 반환하는 함수의 코드의 중복이 거슬린다.
어떻게 리팩터링할 수 있을까?
Future Action Plans
아침에 일어나 목표쓰고 밥먹고 스터디카페 가기
반응형
'TIL' 카테고리의 다른 글
[TIL] 2021.07.03 내 생일 (0) | 2021.07.03 |
---|---|
[TIL] 2021.07.02 (0) | 2021.07.02 |
[TIL] 2021.06.30 (0) | 2021.06.30 |
[TIL] 2021.06.29 (0) | 2021.06.29 |
[TIL] 2021.06.28 싸피 6기 합격 후기 (0) | 2021.06.28 |