기타
백엔드 신입 개발자가 쌓아야 하는 역량은? - 자료구조/알고리즘/코딩테스트편
ㅇ달빛천사ㅇ
2023. 3. 8. 15:09
728x90
제로베이스 권장 가이드라인
- 적어도 3주차까지는 반드시 공부해야 함.
자료구조
: 데이터 사이의 관계를 반영한 저장구조 및 그 조작 방법
메모리를 효율적으로 사용하기 위해 데이터에 맞는 특성의 자료구조를 사용하는 것이 중요하다.
추천 유투브
알고리즘(Algorithm)
: 어떠한 문제를 해결하기 위한 일련의 절차를 공식화한 형태로 표현한 것
예시)
- 라면 끓이는 방법
- 집에서 학교가는 길 찾기
- 편의점에서 삼각김밥 구매하기
What is Algorithm in Programming?
: 입력값을 통해 출력값을 얻기 위한 계산 과정을 의미한다.
위의 예시와 같은 문제를 해결할 때, 정확하고 효율적으로 결과값을 얻기 위해서 알고리즘이 필요하다.
좋은 알고리즘의 조건
- 입력 : 외부에서 제공되는 자료가 0개 이상 존재한다.
- 출력 : 적어도 2개 이상의 서로 다른 결과를 내어야 한다. 즉, 모든 입력에 하나의 출력이 나오면 안 된다.
- 명확성 : 수행 과정은 명확하고 모호하지 않은 명령어로 구성되어야 한다.
- 유한성 : 유한 번의 명령어를 수행 후 유한 시간 내에 종료한다.
- 효율성 : 모든 과정은 명백하게 실행 가능(검증 가능)한 것이어야 한다.
알고리즘 공부하기
책
- 누구나 자료구조와 알고리즘 개정2판: 제로베이스 강사님 추천 도서
웹 사이트
- visualgo : 정렬, 트리 등의 원리를 이해하기 쉽게 시각화하여 한 단계씩 나타낸 사이트
유튜브
앱
알고리즘 도감 - Google Play 앱
보면서 이해하고 실행해서 이해하는 알고리즘 도감. 복잡한 알고리즘의 움직임도 풍무한 애니메이션을 통해 재미있게 학습할 수 있습니다.
play.google.com
알고리즘에 필요한 기본 개념
- 시간 복잡도(Time complexity)
- 문제를 해결하는데 걸리는 시간과 입력의 함수 관계
- 입력된 자료의 양과 알고리즘 실행에 걸리는 시간 사이의 관계
- 이진 탐색(Binary Search)
- 정렬(Sorting)
- 재귀(Recursion)
- 너비 우선 탐색(BFS)
- 깊이 우선 탐색(DFS)
- 백트래킹(Backtracking)
…
코딩테스트
알고리즘 문제은행 사이트
국내 사이트
해외 사이트
📚 References(참고 자료)
- [Algorithm] 알고리즘 공부 시작 방법 및 순서
- [Youtube | 드림 코딩] 자료구조와 알고리즘 그리고 코딩테스트?
- [Youtube | 개발자 장고] 코딩테스트 준비 방법
728x90