일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 시간복잡도
- 입력받기
- 배열이란
- linked list 현실 사례
- django로그인
- let const var 차이
- python
- djangoframework
- 리눅스 기초 명령어
- 웹프로그래밍
- 알고리즘
- 장고
- mdn
- doubly linked list
- 배열 예시
- 사용자입력
- 배열 사례
- 자료구조
- singly linked list
- 트리 시간복잡도
- js
- Django
- 맥북 터미널 명령어
- js입력받기
- 웹개발
- djangoprogramming
- CLI 명령어
- let const 차이
- 자바스크립트
- javascript
- Today
- Total
용기러기's Coding World
알고리즘 일기 Day1 본문
이 파트에서는 알고리즘 일기라는
타이틀로 알고리즘 문제 풀이 & 풀면서 느꼈던 것들을
자유롭게 작성하고자 한다(자유로운 일기식?)
먼저,
알고리즘 문제를 풀 때
체크해야할 사항 3가지
1) 요구사항이 하나 이상인 문제를 여러개로 쪼개서 생각할 수 있다
이 부분이 사실 제일 중요하다고 생각한다.
예전 수능 수리영역 29, 30번 문제들을 생각해보면
한번에 거시적인 문제해결 방식이 '뿅'하고 튀어나오는 경우는 없었다:O
문제를 쪼개서 생각할 수 있는 능력이
복잡한 알고리즘 문제를 해결하는 데에 있어서 가장 중요한 포인트가 아닐까 생각한다.
2) 문제를 일상적인 문장으로 표현할 수 있다
문제를 접해보면 사실 도대체 이걸 왜할까?라는 생각이 드는 문제도 많다..ㅎㅎ
그러나, 문제를 풀기 위해서는
일단 문제에 대한 이해가 선행되어야 하고,
문제에 대한 정확한 이해는 그 문제를 일상적인 용어 혹은 나만의 용어로
바꿀 수 있는 것이라고 생각한다.
3) 잘게 쪼갠 특정 문제가 이미 배운 'javascript'의 어떤 개념과 연관되는지 생각해낼 수 있다
문제를 푸는 데에 있어서 1,2번까지만 하면
결국 문제를 풀 수 없다..
즉, 코딩으로 알고리즘 문제를 풀려면
알고리즘 문제 풀이에 필요한 로직(logic)과
그 로직을 실제로 코드로 구현할 수 있는
프로그래밍 언어 문법에 대한 이해가 베이스로 깔려있어야 한다고 생각한다.
물론 역으로 자바스크립트 문법에 대한 깊은 이해를 바탕으로
알고리즘을 떠올릴 수 도 있다고 생각한다 :D
다음으로,
# 주의사항
1) 들여쓰기(Indentation)
Tab(X) Space(O)
취향차이이긴 하지만 Space를 많이 쓰는 추세!
2) 제대로 된 변수명, 함수(변수)명
- Boolean type의 경우
areEqual, isAnimal 처럼
= true/false를 했을 때 이해하기 쉽게 작성
- 함수의 경우 동사형으로 써주기!
- 상수의 경우 모두 대문자 & 대부분의 경우 변수명의 첫글자는 대문자로!
3) 사소한 것들이지만 중요한 중괄호, " ,;
- 중괄호를 문법적으로 안써도 되는 상황이어도 중괄호 써주기
- 작은 따옴표(')를 써주기 (+"를 쓸거면 ', " 번갈아 쓰지 않기!)
- ; 세미콜론 써주기!
4) 삼항 연산자를 쓰면 코드가 compact 해지지만 가독성이 떨어짐!
명확하게 파악할 수 있는 경우에만
삼항 연산자 써주기
5) 뜻이 분명하다는 전제하에 되도록이면 짧게 쓰기
6) 줄바꿈을 최소로 하기!
7) 콤마(,), 연산자 사이를 띄어써주기
8) 변수명은 카멜케이스로!:D
9) 주석을 많이쓰기보다는 코드에 story가 묻어나오도록!
추가적인 정보는
https://github.com/rwaldron/idiomatic.js/tree/master/translations/ko_KR#whitespace
링크 참조하기!
'용기러기's 알고리즘' 카테고리의 다른 글
알고리즘 시간 복잡도 (Algorithm Time Complexity) (0) | 2020.09.08 |
---|---|
자료 구조에 따른 시간 복잡도 비교 - linked list편 (0) | 2020.09.08 |
자료 구조에 따른 시간 복잡도 비교 - 배열편 (0) | 2020.09.08 |