프론트엔드 데브코스 TIL #DAY10

에구마·2023년 10월 2일
1

23.10.02
DAY8, DAY9는 추석 연휴로 숫자가 사라졌다 (?)

📚 오늘 공부한 것

😲 새롭게 알게된 것

백트래킹

백트래킹 구현엔 DFS나 BFS를 이용한다. DFS의 경우 웬만하면 스택을 이용하여 구현하는 것이 좋고, 탐색에서 순환이 발생할 수 있다면 BFS 구현이 효율적이다.

배열을 초기화 하는 방법

자바스크립트에서 빈 배열 선언 및 초기화 하는 방법을 정리해보자!

const arr = [];
const arr = [1,2,3];

const arr = new Array(5);
// 각 요소는 undefind 를 가진다.

const arr = new Array(0, 0, 0, 0, 0); //Array(5) [0, 0, 0, 0, 0]

const arr = Array.from('foo');
//  Array ["f", "o", "o"]

const arr = Array.from({ length: 4 }, () => 2)
// [2,2,2,2]

const arr = Array.from([1, 2, 3], (x) => x + x);
//Array [2, 4, 6]

Array.from() 참고

DP

해결한 작은 문제로 큰 문제를 해결하는 문제 풀이 방식 (알고리즘은 아님)
메모리를 많이 사용하지만 성능이 빠르다.
코딩테스트에선 메모이제이션 방법론을 많이 사용한다.

DP로 구현하기전에 고려해야하는것!!
1) 가장 작은 문제를 정의할 수 있는지
2)작은 문제를 통해 큰 문제를 해결할 수 있는 규칙이 있는지

`return dp[dp.length - 1] === Infinity ? -1 : dp[dp.length - 1];`

삼항연산자

파이썬에서

return ‘a’ if 1==1 else ‘b’

이렇게 리턴에 조건문 바로 쓰는거, 자스에선 삼항연산자 이용하자 !!!


🫨 어려웠던 점

실습 문제의 난이도가 Lv3, Lv4 여서 온전히 혼자 성공해내기 어려웠다.
특히 N-Queen의 경우 조합으로 경우의 수를 추린 후에 백트래킹을 하고 싶었는데 파이썬처럼 combinations이 내장 모듈에 없기에,, 다른 방안을 떠올리는 것이 더뎠다. 파이썬의 극강 효율의 맛을 알아버린건가 . . .
단어퍼즐 실습 문제에선 테스트케이스와 효율성 케이스에서 두개씩 삐끗했다. 테스트케이스가 실패여서 수정하면 효율성이 실패고.. 무한 반복 ㅜ 강사님의 풀이방법으로 구현해서 성공했지만, 나의 실패한 코드의 실패원인을 찾지 못했다. 내일 스크럼에서 바로 SOS할 예정. 그리고 더 좋은 코드를 찾아보기 위해 구글링 하던 중 Js의 내장 함수를 효율적으로 사용해서 시간 효율도 엄청 좋았던 코드를 발견하고 감탄했다.




🤔 오늘 회고

Keep

과제를 미리미리 해둬서 다른 분들의 코드와 비교하면서 스스로 피드백 받고 개선할 수 있었다! 굿! 강의든 과제든 밀리지 말자

Problem

배열 초기화 방법도 우물쭈물하다니 . . . MDN 뿌수기를 해야겠다

Try

오늘 실습 문제는 며칠 뒤에 완전히 다시 풀기를 시도해야 한다.

profile
코딩하는 고구마 🍠 Life begins at the end of your comfort zone

0개의 댓글