부트캠프 React 과정 7.26

김진우·2023년 7월 26일
0

오늘의 목표

  • 알고리즘 문제풀기 (O)
  • 정예반 과제 피드백 수정 (O)
  • props로된 과제 리덕스툴킷을 이용해서 변경연습하기 (O)
  • 타입스크립트 강의듣기 (1주차 완료)

어려운점

  • 프로그래머스 문제를 푸는 도중
    ``
    문제 설명
    이 문제에서 두 정수 배열의 대소관계를 다음과 같이 정의합니다.

두 배열의 길이가 다르다면, 배열의 길이가 긴 쪽이 더 큽니다.
배열의 길이가 같다면 각 배열에 있는 모든 원소의 합을 비교하여 다르다면 더 큰 쪽이 크고, 같다면 같습니다.
두 정수 배열 arr1과 arr2가 주어질 때, 위에서 정의한 배열의 대소관계에 대하여 arr2가 크다면 -1, arr1이 크다면 1, 두 배열이 같다면 0을 return 하는 solution 함수를 작성해 주세요.
이 문제에서 나는
// 1. 두 배열 비교 하는 식
// 2. 배열의 비교한게 다르면 배열의 길이가 더긴쪽이 크다
// 3. 배열의 비교한게 같다면
// 3-1 각 배열의 원소 합 을 비교
// 4. arr2가 크면 -1 , arr1 이크면 1 ,같으면 0을 return
``
이렇게 순서를 잡고

``

function solution(arr1, arr2) {
const add1 = arr1 => arr1.reduce((a,b)=> a+b ,0)
const add2 = arr2 => arr2.reduce((a,b)=> a+b ,0)
let sum1 = add1(arr1)
let sum2 = add2(arr2)
if(arr1.length !== arr2.length){
if(arr1.length>arr2.lenght){
return 1
}else{
return -1
}
}else {
if(sum1 > sum2){
return 1
}else if (sum1 === sum2 ){
return 0
}else{
return -1}}}
``

이렇게 reduce메서드를 사용해서 문제를 풀었는데 테스트지 3가지는 모두 통과를했지만 코드실행을 하니 몇가지 문제에 통과를 못한 오류가 있었다. 그래서
``

if(arr1.length !== arr2.length){
if(arr1.length>arr2.lenght){
return 1
}else{
return -1
}
``

이부분을 if문 안에 if문을 사용하지 않고 삼항 연산자로
return arr1.length > arr2.length ? 1: -1
바꾸어서 문제를 해결하였다.

느낀점

  • 오늘 어제 정예반 과제에 대한 피드백을 받았다 나는
    상세페이지 삭제시 메인페이지로 이동 , 추가하기 useState 최상단에있는거 옴기기.
    추가할때 작성자도 나오게 하자
    회원가입시 로그인하러가기 로그인에서 회원가입 하러가기 이동구현
    alert을 컴펌으로 변경 ,id값을 nanoid()로 변경 작동잘되는지 확인

  • 이렇게 피드백을 받고 다시 수정후 커밋 푸시를 완료 하였다. 먼가 피드백을 받으면서생각해보니
    내가 과제를 수행해야된다는 생각때문인지 유효성검사를 확실하게 하지 않은 부분이 많이 있었다.
    다음에는 좀더 꼼꼼하게 생각을 해야 되겠다고 생각을 했고,
    오늘 처럼 정예반 과제를 하면서 모르는부분은 복습을하고 TypeScript에 대해서도 꾸준히 공부를 해나가면서 뒤쳐지지않도록 최선을 다해서 잘하시는분을 따라가야겠다고 생각을 했습니다.

0개의 댓글