[TIL] 240521 (React redux, react router dom, supabase)

·2024년 5월 21일

TIL

목록 보기
48/268
post-thumbnail

🥞 오늘 한 일

  • 리액트 숙련 강의
    • 1-8~1-20 수강 완료 (완강)
  • 알고리즘 코드카타
    • 두 단어가 애너그램인지 확인 (테스트 케이스 변경으로 인해 수정 후 재제출)

🍽️ 문제 해결

알고리즘 코드카타

두 단어가 애너그램인지 확인

금일 테스트 케이스가 추가되어 기존 코드로는 통과할 수 없게 되었다. 때문에 코드를 수정했다.

function isAnagram(a, b) {
  const sortA = a
    .replaceAll(" ", "")
    .split("")
    .map((str) => str.toLowerCase())
    .sort();
  const sortB = b
    .replaceAll(" ", "")
    .split("")
    .map((str) => str.toLowerCase())
    .sort();
  for (let i = 0; i < sortA.length; i++) {
    if (sortA[i] !== sortB[i]) {
      return false;
    }
  }
  return true;
}

두 단어를 비교하기 쉽도록 새로운 변수를 만들어준다.
해당 변수에서는 우선 공백을 제거하고, 각 단어를 배열로 만들어 map() 메서드로 전부 소문자로 변경하고, 순서를 정리하기 위해 sort() 메서드를 적용한다.
이 경우 한 단어가 알파벳 순서를 바꾸어 다른 단어를 만들 수 있다면 배열의 요소와 순서가 전부 같다는 점을 이용했다.
반복문을 사용해 sort()가 적용된 배열의 각 요소가 다를 경우 바로 false를 return한다.
false 없이 반복문을 전부 돌았다면 두 배열의 요소가 같다는 말이기 때문에 true를 return한다.

🍪 배운 것

리액트 숙련 강의

  • memoization - useMemo
  • custom hooks
  • redux
    • 소개, 구성, useSelector
    • dispatch action 객체
    • payload, ducks
    • todolist
    • RTK
    • RTK todolist
  • react router dom
    • 소개, 세팅, hooks
    • children
    • dynamic, outlet
  • supabase
    • 개념 및 설정
    • 등록, 수정, 삭제

🍴 돌아보기

  • 생각보다 강의가 난이도가 있어서 강의 들으며 따라치고 이해하고 하다가 하루가 다 갔다. 그래도 아직 강의가 내 것이 되지는 않은 것 같아서, 내일부터 착실하게 과제를 진행하며 계속해서 강의를 반복해야할 것 같다.

🍳 내일 할 일

  • 리액트 숙련 개인과제 진짜 시작...!
profile
웹 프론트엔드 개발자

0개의 댓글