[TIL] 내일배움캠프 React 과정 2023.02.02

Today I Learned

  • Programmers 문제 풀기
  • 최종프로젝트 준비하기

 


Programmers 문제 풀기

가장 큰 수 찾기

나의 풀이

function solution(array) {
    let max_num = array[0];
    let answer = [];
    for (const i in array) {
      if (array[i] > max_num) {
          max_num = array[i];
          answer = [max_num, +i];
      }
    }
    return answer;
};

 

다른 사람의 풀이 01

function solution(array) {
    let max = Math.max(...array);
    return [max, array.indexOf(max)];
}

최댓값 찾아주는 메서드가 있었구나... 그렇구나... indexOf도 공부해 봐야겠다!

 

const array1 = [1, 3, 2];

console.log(Math.max(...array1));
// Expected output: 3

 

const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];

console.log(beasts.indexOf('bison'));
// Expected output: 1

 

짝수와 홀수

나의 풀이

function solution(num) {
    return num % 2 === 0 ? "Even" : "Odd"
}

0단계를 55% 정도 풀고 1단계로 넘어간다.

 

 

다른 사람의 풀이

function evenOrOdd(num) {
  return num % 2 ? "Odd" : "Even";
}

숫자 0인 경우 false가 출력되기 때문에 이것을 이용해서 === 0을 생략할 수도 있다..!

  • Falsy 값에는 빈 문자열 " ", 숫자 0, 불리언 false, null, undefined, NaN가 해당된다.
  • Falsy 값이 아닌 모든 값은 Truthy 값으로 연산되며 결국 true로 평가된다고 이해할 수 있다.
  • 항상 Truthy로 판단되는 자료형이 있다.
    • Array
    • Object

 

평균 구하기

나의 풀이

function solution(arr) {
    return arr.reduce((acc, cur) => acc + cur, 0) / arr.length
}

 


VSC global snippet 설정하기

{
  "Console log": {
    "prefix": "cl",
    "body": "console.log($1);"
  },
  "Console log with string template": {
    "prefix": "cs",
    "body": "console.log('$1:', $2);"
  },
  "React Fuction Component": {
    "prefix": "rfc",
    "body": [
      "export default function ${TM_FILENAME_BASE}() {",
      "  return (",
      "    <div>${TM_FILENAME_BASE}</div>",
      "  );",
      "};"
    ]
  },
  "UseState": {
    "prefix": "us",
    "body": "const [$1, set$2] = useState($3)"
  },
  "Arrow function": {
    "prefix": "af",
    "body": ["const $1 = () => {", "  $2", "};"]
  }
}

유튜브 영상을 보고 코드 스니펫을 몇 개 설정했다. 자주 쓰는 콜솔로그랑 rfc, useState, 화살표 함수 정도를 만들었다. 영상 보면서 따라 하니까 생각보다 어렵지 않았다!

 

참고

https://youtu.be/umeqCopb96w

https://snippet-generator.app/?description=React+Fuction+Component&tabtrigger=&snippet=&mode=vscode


회고

알고리즘 기초가 부족한 거 같아서 스파르타에서 제공해 준 알고리즘 강의 자료를 복습하고 있다. 거기서 문제를 풀 수 있는 다양한 방법을 접한 후에 실제로 문제를 풀 때 적용해보려고 한다. 근데 오전에만 잠깐 하다가 다른 거 공부하는 게 더 급한 거 같아서 그만뒀다.

 

오늘 최종프로젝트에 대해서 팀원분과 얘기도 많이 나누고 고민도 공유하며 미리 준비하는 시간을 가지기도 했다. 리더 부리더를 지원해서 좋은 점이 팀의 방향성이라든지 프로젝트 관련해서 미리 얘기를 나눌 수 있다는 점인 거 같다. 내일은 Next.js를 더 열심히 공부해야겠다!