1.백준에서 문제를 풀 경우 .trim()을 꼭 이용해야한다.. 요즘 없는 초기값 입력을 복붙으로 사용했는데 그것 때문에 요 며칠간 안됬던 것 같다. 가장 쉬운문제의 입력 받아오기를 비교해보고나서야 trim이 빠졌다는 사실을 알게 되었다..
2.인색스 검색은 findIndex, indexOf, includes가 있다.
//findIndex 필터와 유사하며 가장 처음 해당 조건을 만족하는 index 반환
arr.findIndex(function)
//indexOf 일반적으로 생각하는 index 위치를 찾아주며 없으면 -1, 몇번째도 지정이 가능하다.
//또한 (a,b)를 입력시 a를 찾으며 b 위치에서 스타트한다.
arr.indexOf('element',num(optional))
//includes 해당되는 내용이 있는지 boolean값으로 반환한다. 뒤의 num값은 스타팅 위치이다.
arr.includes('element',num(optional))
3.이진탐색은 정렬된 배열을 탐색할 때 중간값으로 이동해가며 앞뒤로 범위를 좁혀나가는 방식으로 상당히 빠르다. 왼쪽과 오른쪽을 양끝으로 잡은 후 중앙값을 체크한 다음 원하는 값이 중앙값보다 크다면 중앙값 위치에 왼쪽 값을 대입해 범위를 반씩 좁혀나간다.
function binary(arr, el){
let left = 0
let right = arr.length-1
let middle = Math.floor((left+right)/2)
while(arr[middle] !== el && left <= right){
if(el < arr[middle]){
right = middle - 1;
}
else{
left = middle +1
}
middle = Math.floor((left+right)/2)
}
return arr[middle] === el ? middle : -1
}
4.문자열이 문자열 내부에 있는지를 확인하는 함수는 첫번째 글자가 일치할 경우 다음 글자를 확인해나가며 모든 글자(찾기를 원하는)가 일치할 경우 retunr을 해준다. 또는 몇개가 있는지 알려줄 수 있고 Ctrl+F를 사용할 때와 유사한 기능을 사용하고 싶다면 갯수와 index를 함께 사용해 몇개가 있는지와 위, 아래 화살표를 누를 경우 다음 ref로 이동하게 할 수 있을 것 같다. 사용방식은 아래와 같다.
function searchStr(text, keyword){
let count = 0
for(let i = 0 ; i < text.length; i++){
for(let j = 0 ; j < keyword.length; j++){
if(keyword[j] !== text[i+j]){
break
}
if(j === keyword.length-1){
count++
}
}
}
return count
}'회고' 카테고리의 다른 글
| [사용자 친화 웹] 웹 표준 & 접근성-2 (0) | 2022.07.11 |
|---|---|
| 학습(알고리즘) (0) | 2022.07.10 |
| [사용자 친화 웹] 웹 표준 & 접근성 (0) | 2022.07.08 |
| [React] 상태 관리-3 (0) | 2022.07.07 |
| [React] 상태 관리-2 (0) | 2022.07.06 |
