코딩 테스트를 위해서 참 예전부터 준비했던 것 같다.
하지만 생각보다 너무 어려워서 금방 포기를 해서, 취업의 선택의 폭이 좁아졌던 것도 사실이다.
언제까지 코딩 테스트를 외면할 수는 없는 법.
아무리 GPT가 코드를 짜준다고 해도, 기본적인 구조와 알고리즘은 이해해야 원하는 방향으로 짤 수 있겠다! 라는 생각이 들면서 본격적으로 코딩 테스트를 준비하며, 공부한 내용을 정리해보고자 한다.
1. 자료구조
코딩 테스트를 하면서 자료구조에 대해 매 강의마다 들었다.
그치만 너무 어려워.. list, queue, hash table 등.. 친절한 설명들로 구성되어도 어려웠지만
한번 제대로 정리해보겠다.
자료구조: 어떻게 데이터를 저장하고 관리할지 정하는 것
이 내용은 이해했는데, 그렇다면 왜 자료구조를 이해해야 할까?
나는 공부를 하면서 이런 근본적인 질문들이 생각나는 편이고, 이런 질문이 해결되지 않으면 잘 이해가 안됐다
왜 자료구조가 필요하냐면 데이터를 체계적으로 저장해서 메모리를 효율적으로 사용해야 하니까!
그래서 빠르고, 또한 안정적으로 데이터를 처리해야 하기 때문이다.
이 부분이 이해가 잘 안갔는데, 생각해보니 매우 중요하더라.
왜 이해가 안가는지 생각해보니 내가 코드를 짤 경우, 예시의 데이터는 몇개가 안되니까 였다.
즉, 정렬을 하든 어떤 조건을 만족하는 코드를 짜든 10개의 숫자 정렬, 2~3개 조건을 만족하는 코드 였기 때문에 복잡도를 생각하지 않고 코드를 짰다는 것이다.
그러니까 자료구조 신경안쓰고 코드를 막 짰다. 시간이야 걸려봐야 기다리면 됐으니..
하지만 코딩 테스트에서는 그렇지 않고, 샘플 예시? 가 엄~~~청 많다.
그리고 조건도 2~3개가 아니고 수십개.. for 문을 돌리면 결국 n²이 될 수도 있으니 당연히 복잡도를 줄여야 하니까 자료구조가 중요한 것이다.
자료구조에 대해 그림을 그려보았다.
나는 List에 Array list, Linked list로 나누고 Array list 하위로 Array, Dynamic array가 있는 것으로 학습했으나, 자료구조를 위해 조사를 하다보니 이렇게 표현을 하더라.
아무래도 나는 파이썬을 활용해서 그런가?
어쨌든, 이렇게 순차적으로 하나씩 자료구조를 정리해 나갈 예정이다!
진짜 코딩 테스트 제대로 준비해볼꺼다!
'코딩 테스트' 카테고리의 다른 글
[04-1] 연결 리스트란? (2) | 2023.11.09 |
---|---|
[03-3] 배열을 알아보자(활용편) (3) | 2023.11.09 |
[03-2] 배열을 알아보자(Dynamic Array) (1) | 2023.11.09 |
[03-1] 배열을 알아보자(Static Array) (0) | 2023.11.08 |
[02] 알고리즘이란? (0) | 2023.11.08 |