기타

백엔드 신입 개발자가 쌓아야 하는 역량은? - 자료구조/알고리즘/코딩테스트편

ㅇ달빛천사ㅇ 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(참고 자료)

 

728x90