한창 알고리즘 공부에 빠져들었을때,
퍼즐 맞추듯 하나씩 단서를 찾고 풀어나가는게 아주 재밌었다.
근데 100문제 넘게 풀어도 생각보다 실력이 더디게 느는 느낌이라
프로그래머스에서 알고리즘 강의를 결제했다.
한동안 가계부 프로젝트에 빠져있느라 강의를 안듣고 있었는데,
이론 강의 호로록 듣고 복습하며 꾸준히 문제푸는 루틴을 만들려고 한다.



역시 꾸준히 복습하지 않으면 까먹기마련..
전에 정리해놨던 내용들부터 쭉 훑고 가보자


좋은 코드를 만드는 몇가지 원칙

간결하고 가독성 좋은 코드
  • 변수, 함수 이름 잘 정하기
  • 중복코드 제거
  • 함수형 프로그래밍 : map, filter, reduce와 같은 고차함수 활용하기
가지치기
  • 일부 불필요한 로직을 수행하지 않도록 막는 것
  • 사소한 로직에서 큰 성능 개선은 안되지만, 코드리뷰에서는 좋은 평가
자바스크립트 문법의 충분한 활용
  • 구조분해할당, spread operator등 잘 활용하기
일관성 유지
  • var, let 혼용 X
  • snake_case, camelCase 혼용 X
  • 줄임말, 전부 적는 등 혼용 X
  • but 코드리뷰 없는 테스트라면 스타일은 무시해도 된다



자료구조

stack queue graph tree
상황에 따라 메모리를 효율적으로 사용하여 빠르게 처리할 수 있도록 특정구조를 가진다.
상황에 맞는 적절한 자료구조를 선택하여 활용하면 된다.

이것은 1차원의 컴퓨터 메모리가 다차원인 현실에 대응할 수 있도록 만든 구조이다.
예를들어 queue : 줄서기 hash table : 사물함 같은것에 대입해 볼 수 있다.

  • 단순구조 : 정수, 실수, 문자열, 논리
  • 선형구조(Linear structure)
    Array, Linked list, Stack, Queue
    한 원소 뒤에 하나의 원소가 존재. 데이터가 선형으로 나열.
  • 비선형구조 (None-Linear structure)
    Tree, Graph
    원소 간 다대다 관계를 가짐. 계층구조나 망형 구조 표현에 적절.



Leave a comment