[자료구조] 자료구조 및 알고리즘 시작
Basic Concept
이 Data structure and algorithm에서는 자료구조와 알고리즘의 각 종류와 세세한 이론을 바탕 및 구현으로 한 내용이 주를 이루어 기술하는 카테고리이다.
시작하기 앞서…
자료구조와 알고리즘은 타 과목에 비해 중도포기하는 사람이 많은 과목이라고 한다. 막히거나 답답한 부분이 자주 나올 수도 있지만 어려운 것이 정상이고 모두가 다 어려워 하기 때문에 기초부터 차근차근 배워나가면 충분히 소화할 수 있는 과목이기도 하다.
이곳에서는 모든 코드를 알고리즘 동작방식에 초점을 맞추어 java언어로 짰습니다.
파이썬을 이용한 자료구조와 알고리즘도 추후 포스팅 하도록 할 것이다.
코딩 테스트는 파이썬으로 풀었을 때 더 편한 경우가 많다.
자료구조를 공부해야 하는 이유
- 취업
- 물론 취미로 하시는 분들도 있으실 것이고 프로그램을 만들고 싶어서 하시는 분들도 많겠지만 이 모든 이유는 취업에서 비롯된 것으로 나중에 어떤 IT계 회사에 들어가기 위해서는 먼저 코딩테스트를 봐야 하고 합격 한다면 기술면접을 보게 되는데 이때 자료구조에 대해 미숙하다면 불리하게 작용하기 때문에 굉장히 붙기가 힘들 것이다. 코딩 테스트 기술 면접에서 주로 물어보는 질문으로는 다음과 같다.
- ArrayList와 LinkedList의 차이를 내부 구현 관점에서 설명하시오
- Merge sort의 시간복잡도를 증명하시오 (O(nlogn))
- 코딩테스트 자체는 복잡한 알고리즘을 구현해 내는데 의의가 있기 때문에 이 과목이 상당히 중요한 것이고 면접 또한 기업에서 요구하는 자질, 즉 중요한 알고리즘들을 자세히 알고 있으며 이를 사용할 수 있는가를 직접적으로 물어보는 것이기 때문에 중요한 것이다.
- 물론 취미로 하시는 분들도 있으실 것이고 프로그램을 만들고 싶어서 하시는 분들도 많겠지만 이 모든 이유는 취업에서 비롯된 것으로 나중에 어떤 IT계 회사에 들어가기 위해서는 먼저 코딩테스트를 봐야 하고 합격 한다면 기술면접을 보게 되는데 이때 자료구조에 대해 미숙하다면 불리하게 작용하기 때문에 굉장히 붙기가 힘들 것이다. 코딩 테스트 기술 면접에서 주로 물어보는 질문으로는 다음과 같다.
- 현업
- 그럼 취업만을 위해 이 과목의 지식이 필요한 것인가? 라는 의문을 가진다면 이에 대한 답은 당연히 ‘No’ 이다. 앞서 말한 것처럼 기업이 이에 대한 내용을 면접에서 물어보는 이유는 실제 현업에서 자기가 맡은 일을 잘 할 수 있을 지를 보기 위함으로 아무리 코딩 실력이 좋다고 할 지라도 현장에서는 알고리즘과 자료구조를 모르면 해결할 수 없는 문제들이 존재하고 자료구조의 내부 구현에 대해 미숙하다면 잘못 사용하기 쉽다.
시각 자료 사이트
https://visualgo.net/en
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
- 자료구조와 알고리즘은 구조와 관련 된 것이기 때문에 시각 자료를 동반하면 도움이 많이 되는데 이에 대한 자료를 모아놓은 사이트들입니다.
댓글남기기