
Section 2, 1주차가 지나갔다. 무사히 지나갔다라는 표현을 쓰려다 말았다. 너무 험난한 시간이었다. 개발은 역시 이론과 실전이 다른 법이다. 개념은 이해했는데 실제 코딩 구현은 굉장히 힘들었다. 오늘은 Graph로 DFS, BFS 를 코드로 구현하는 코플릿 문제가 있었는데 푸는 방법이 모든 케이스에 적용되는 로직이 아니라, 그 테스트만 통과할 수 있는 로직으로 풀어내서 찝찝함이 남아있다. 아직은 내가 다가서지 못하는 단계인 것 같다. 나뿐만이 아니라 다른 분도 그랬다. 진짜 코딩 잘하는 동기분들도 어려워하시니 위로가 되긴 했지만... 그럼에도 충격에서는 벗어나지 못하고 있다. Section 2 에서 갑자기 난이도가 팍 뛰어 오른 것을 체감했고 이제 Section 3도 있고, 거기까지 가지 않더라도 이제 겨우 Section 2의 1주차인데 이렇게 팍 어렵다는 걸 느끼니 살짝 멘붕에 걸리기도 했다.
반대로 생각하면, 나 이제 개발 공부 진심으로 시작한 지 1달 밖에 되지 않았다. 크루님께서 말씀해주신 것처럼 지금 이 문제들을 풀어낸다는 것 자체가 말이 안 되는 거지, 내 실력이 말이 안 되는 건 아니다. 이제 시작했을 뿐이다. 다만, 시간이 지나서도 이 문제에 쩔쩔 매고 있을 수는 없다.
전심으로 노력하면 충분히 성장할 수 있다. 그렇게 믿고 공부한다.
[ 오늘의 TODO ]
코드 스테이츠) BFS, DFS 개념
// 이번 주 주말 기술 블로깅 빡세게 해야할 것 같다.코드 스테이츠) Pair-Programming// Graph
// BFS, DFS 문제들 (아직도 조금씩 풀어나가려 애쓰는중)- 패스트 캠퍼스) 인강 3개 이상 듣기 // optional
// 도저히 들을 시간이 없다. - 스터디 그룹) 프로그래머스 문제 풀기 (~월)
// 하노이의 탑
// 기능 개발 생활) 물 1L 이상 마시기- 개선) 페어 프로그래밍할 때도 혼자 있을 때처럼 침착하게 오류 대처하기
// 오늘은 침착하게 대처한 게 아니라 그냥 페어분이랑 같이 말 없이 계속 트러블 슈팅만 했다.
// 말이 자연스럽게 사라지더라...

[ 오늘의 해결 ]
1. new Array와 fill( )
레퍼런스 코드를 보며 감탄했던 내용이었다. 들어오는 인자 값의 길이만큼을 지닌 배열을 만들 때 내가 쓴 방법은
let arr = []
for (let i = 0 ; i < maximum ; i++) {
arr.push(0)
}
이렇게였다. 시간 복잡도로 따지면 O(N) 만큼 든다. 그런데 레퍼런스 코드는 new Array를 통해서 원하는 길이의 배열을 만들어냈다.
let arr = new Array(maximum).fill(0)
이 간단한 한 줄이 저 위의 내용이다. fill 메소드는 이번에 처음 알았는데, 배열의 내용을 인자에 들어간 조건에 맞추어 채워준다. 굉장히 유용해서 기억이 오래 남는 것 같다.
new Array ( ) 안에는 내가 직접 넣어주고 싶은 요소가 들어갈 수 있고, 혹은 위에 처럼 length 길이를 넣어줄 수 있다. 만약 new Array (1, 2, 3) 이라고 한다면 배열은 [1, 2, 3] 으로 만들어졌다.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Array
Array() constructor - JavaScript | MDN
The Array() constructor is used to create Array objects.
developer.mozilla.org
array.fill 은 밑의 박스처럼 사용할 수 있다.
array.fill(value, start, end)
value 로 array의 요소를 value로 채운다 (value는 필수)
start 로 array[start] 부터 채우기 시작한다 (number 타입)
end 로 array[end - 1] 까지만 채운다 (number 타입)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill
Array.prototype.fill() - JavaScript | MDN
The fill() method changes all elements in an array to a static value, from a start index (default 0) to an end index (default array.length). It returns the modified array.
developer.mozilla.org
[ 오늘의 교훈 ]
1. 어려우면 도전하자
어렵다고 불평하지 말고, 그 어려운 걸 해내보자는 생각을 하자. 지금 나는 공부하는 사람의 입장이란 걸 절대 잊지 말자. 개발자의 공부는 끝이 없다고 하지만 지금은 특히나 개발과 연관 없는 삶을 살다가 개발에 발을 들인지 고작 1달밖에 되지 않은 거다. 어려운 건 당연한 거고, 그 어려운 것 때문에 좌절하지 말자. 그 어려운 것을 풀기 위해서 지금 공부하는 거다. 그러니까 어려운 문제들을 보고 내 실력을 폄하하기 보다는 그것을 어떻게든 이겨내보겠다는 마음가짐으로 공부하자. 거짓없이 공부를 하다보면 밑의 짤처럼 말할 수 있게 될 거다. 어려운 일이 닥치더라도 도전하고, 공부하자.

'코드스테이츠 > 코드스테이츠 @ 개발 일지' 카테고리의 다른 글
[코드 스테이츠] 44일차, 트러블 슈팅 백만 번 (0) | 2021.08.31 |
---|---|
[코드 스테이츠] 43일차, Section 1 주제가 숨구멍 (0) | 2021.08.30 |
[코드 스테이츠] 39일차, 자료 구조 배우고 스터디 그룹 정식 활동 시작 (0) | 2021.08.26 |
[코드 스테이츠] 38일차, "나는 할 수 있다. 정말 할 수 있다" (0) | 2021.08.25 |
[코드 스테이츠] 37일차, "나는 나면서 나였을 때 나로 말할 것 같으면" (0) | 2021.08.24 |