자바스크립트 숙련도 높이기
이번 주 react강의를 보고 스스로 인출하다 보면 react를 몰라서 막힐 때 반, JavaScript를 몰라서 막힐 때가 반이었다.
아니 이번 주는 react를 배워야 하는데 자바스크립트 때문에 자꾸 막 하니까 현타가..
저번에 JavaScript문법을 학습할 때 대충 한 것인지 아니면 자바스크립트를 아직 많이 사용을 안 해서 그런 건지..
아직까지 자바스크립트가 너무 어렵게 느껴진다.
제발 후회하지 말고 할 때 제대로 배우자....
이번 주는 그래도 자바스크립트를 다시 복습할 수 있는 황금 같은 시간이 있기 때문에 다음 주에는 자바스크립트 때문에 애먹는 일이 없도록 자바스크립트의 숙련도를 높이는 것을 목표로 삼았다.
뭐든지 숙련도를 높이기 위해서는 반복이 가장 중요하다고 생각하기 때문에 프로그래밍 언어도 마찬가지로 자꾸 반복해서 자바스크립트를 사용하다 보면 숙련도가 높아질 것이라고 생각한다.
그러면 자바스크립트를 반복해서 사용해야 하는데 간단하게 자바스크립트를 반복해서 사용하기 가장 좋은 상황은 역시 문제를 푸는 거라고 생각했다.
자바를 처음 배울 때도 문제를 많이 풀면서 자바를 배웠기 때문에 이번 주는 코테 문제를 웬만하면 자바보다는 자바스크립트 언어를 사용하려고 한다.
소수 만들기
오늘은 프로그래머스에서 자바로도 풀어본 적이 없는 문제인 소수 만들기 문제를 선정했다.
일부러 자바로 풀어본 적이 없는 문제를 선별했는데 이유는 자바로 한번 풀어본 문제는 풀이 방법이 기억이 나서 계속 그 풀이 방법으로 풀려고 하기 때문이다.
솔직히 소수 만들기 문제 간단할 줄 알고 골랐는데 풀면서 아 다른 거 풀까..? 고민을 했던 나... ㅋㅋㅋㅋ
그래도 선택한거 끝까지 풀어보자하고 풀긴 풀었는데 3중 for문이라는 괴물을 만들어 버렸다..
depth가 2이상 넘어가면 안 좋다고 해서 2중 for문에서 멈추려고 했는데 2중 for문에서 멈추고 풀려고 하니까 내 뇌도 같이 멈춰버려서 for문을 하나 더 얹어버렸다.
3중 for문을 썼을때는 문제가 풀렸는데 어떻게 하면 3중 for문을 쓰지 않고 풀 수 있을까 생각을 해봤지만 전혀 떠오르지 않아 다른 사람들은 소수 만들기 문제를 어떻게 풀었는지 확인을 해봤는데 대다수가 3중 for문을 사용했었다.
이 문제 3중 for문 아니면 못 푸는 문제인가 생각을 하던중 for을 하나만 쓰고 푼 풀이가 있어서 보는데 DFS라는 개념이 사용됐다고 하는데 DFS가 뭐죠...?
DFS
구글링 해보면 DFS(깊이 우선 탐색)는 그래프를 순회하며 탐색하는 알고리즘으로 알고리즘 문제 풀 때 사용하는 방법 중 하나인 것 같았다.
DFS를 간단하게 알아본 바로 DFS는 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이라고 한다.
여기서 그래프란 우리가 흔히 알고 있는 그래프가 아니였다.
밑에 사진처럼 생긴 게 그래프라고 한다.
그래프는 노드라고 불리는 동그라미들과 노드와 노드를 이어주는 간선으로 구성되어있다.
그러면 그래프의 깊은 부분을 우선적으로 탐색한다는 게 무슨 말인가 하면 글로는 설명할 수 있는 수준이 아니라 사진을 ㅎㅎ
사진처럼 가장 깊게 연결되어있는 노드부터 탐색하면서 간선으로 이어져있는 노드를 탐색하다 모두 탐색했으면 이전 노드로 돌아가 다른 곳으로 연결되어있는 노드를 탐색하는 방식인 것 같다.
솔직히 이 알고리즘 개념을 오늘 푼 소수 문제에서 어떻게 할용해야 할지는 모르겠다..
지금 자바나 자바스크립트로 레벨 1문 제도 잘 못 푸는데 이 DFS를 알아도 활용 못할 것 같아서 오늘은 DFS를 맛만 봤다.
언젠가는 DFS를 다시 공부하는 날이 오지 않을까?
굳이
솔직히 DFS를 검색해서 개념을 딱 봤을 때는 쓰지 못할 거를 알아서 더 찾아볼 필요가 있을까 생각을 했다.
하지만 조금이나마 개념을 찾아서 정리한 이유는 트레이너님이 공부하다 모르는 개념이 나오면 "굳이"찾아보는 습관이 중요하다고 하셔서 나도 굳이 한번 찾아봤다.
오늘 학습의 목표는 자바스크립트 언어를 익히는 거라고 생각해서 너무 깊게 학습하지는 않았지만.. ㅎㅎ
그래도 꾸준히 이렇게 굳이 학습하는 습관을 길러보자!
Action Plan
학습하다 모르는 개념이 나오면 필요 없다고 혼자 판단해서 넘어가지 말고 찾아서 공부하고 TIL이나 노션에 정리하기
'성장이야기 > TIL' 카테고리의 다른 글
220908 TIL 나태함은 극복하는 거야 (0) | 2022.09.08 |
---|---|
220907 TIL useState의 편리함 (1) | 2022.09.07 |
220905 TIL getById() vs findById() (0) | 2022.09.05 |
220904 TIL Stack을 활용해보자 (0) | 2022.09.04 |
220903 TIL 과제를 바라보는 시선과 마음가짐 (0) | 2022.09.03 |