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

+ Recent posts