본문 바로가기
일반 학습/코딩 테스트

코딩 테스트 연습

by StelthPark 2021. 9. 30.

코딩테스트

*fromEntries는 배열안 요소를[A,B]를 객체로 {A:B}로 만들어준다

[ [0,1], [1,2], [3,4] ] => [ {0:1} , {1:2}, {3:4} ]

 

*sort를 통해 reduce와 비슷하게 앞 a 뒤c를 비교하여 앞 값이 뒷값 보다 크면 return 1로 정상적으로 자리 바꿈이 일어나고 앞값이 뒷 값 보다 작으면 return -1로 그대로 둔다

 

 

코플릿 6번문제

피보나치 함수실행 횟수마다 결과도출

*count에 따라 함수 실행 횟수가 기록된다.

*함수 한번 실행시 count를 1로 ++올리고 fr로 count-1하여 0이 fr(0)으로 들어가며 2보다 작을시 자기 자신인 0이 들어가게된다.

*count는 함수가 끝날때 까지 기억한다.

*3번째부터 피보나치가 작동된다.

 

코플릿 7번문제

 

 

입출력 예시

let input = [ { id: 1, name: 'johnny', }, { id: 2, name: 'ingi', children: [ { id: 3, name: 'johnson', }, { id: 5, name: 'steve', children: [ { id: 6, name: 'lisa', }, ], }, { id: 11, }, ], }, { id: '13', }, ];

 

let output = test7(input, 1); console.log(output); // --> { id: 1, name: 'johnny' }

output = test7(input, 5); console.log(output); // --> { id: 5, name: 'steve', children: [{ id: 6, name: 'lisa' }] }

output = test7(input, 99); console.log(output); // --> null

 

성공 / 전체를 한번돌려 내부에 children이 있을시 그 children만 추출하여 다시재귀로 검사

function test7(arr, id) {

  let newArr=[];

  for(let i =0; i < arr.length; i++) {

    if(arr[i].id === id) {

      return arr[i];

    }

    else if(arr[i].children!==undefined) {

      let nextArr = arr[i].children

      newArr = newArr.concat(nextArr);

    }

  }

 

  if(newArr.length >0) {

    return test7(newArr, id)

  }

  return null;

}

실패 / 첫 children이 있는곳까지 들어가서 재귀로 검사하면 빠져나올때 무조건 null로 되어 다음 객체 검사불가능

 

function test7(arr, id) {

 

for(let i=0 ; i<arr.length ; i++){

 

  if(arr[i].id===id){

    return arr[i]

  }

 

  else if(arr[i].children!==undefined){

 

    return test7(arr[i].children,id)

  }

}

return null

}

 

 

react 스프린트

 

자식에게 props전달할때 props이름과 전달한 props 구조분해하는법

부모컴포넌트에서 작성된 <자식컴포넌트 source={source}> 로보내면 자식컴포넌트에서 source를 인자로 받아 풀어보면

source:{key:value} 형태로 들어오게 된다.

이때, const {source} = source를 하게되면 source는 풀어져 {key:value}로 나타나게 된다.

 

react 라우터 로 페이지 연결 쓰는법 - Link의 역할과 Switch~Route의 역할

BrowserRouter로 브라우저에 라우터를 사용함을 넣어주게된다.

Link컴포넌트는 a태그처럼 해당 to주소로 이동하게된다.

Switch컴포넌트로 내부에 있는 페이지들을 화면에 돌아가면서 띄우게된다.

Route컴포넌트로 정확한 경로를 지정하여 내부에 든 나타나게 될 컴포넌트를 삽입한다.

 

react 에서 useState로 데이터 상태를 관리할시 새로들어온 값이 적용 안될 때

새로운 주소를 참조하여 새롭게 만들수 있도록 concat를 사용한다.

댓글