Ep22. 자료구조와 알고리즘은 필수라고?
알고리즘
자료구조와 알고리즘을 공부하면 코드를 더 효율적으로 만들 수 있다. (어떻게 하는지 알고 싶다)
정렬 알고리즘이나 패스파인더, 압축 알고리즘 같은 것들이 있다. 그냥 명령을 내려주는 함수라고 생각하면 쉽다...?
자료구조
데이터의 저장 방식에 따라 찾거나 수정하는 등등의 시간이 달라지기 때문에 그에 맞는 자료구조로 데이터를 저장해야함
목적에 따른 자료구조형을 찾아서 저장해야함
Ep23. 배열이 뭐죠?
시간 복잡도
작업 속도를 말하지만 몇초가 걸리는지를 보는 것 말고도 몇 단계를 거치는지 확인하는 것을 말한다.
램에 데이터를 저장하고 인덱스 값?을 자정해 놓으면 그 인덱스를 찾아라!라는 명령을 내리면 그 값을 찾아온다. 그래서 속도가 빠르다고 한다.
배열의 검색 속도
배열의 데이터 추가 속도
배열의 데이터 삭제 속도
관련 내용은 책을 참조하세요.
아니면 니꼬샘의 유투브를 이용해서 공부해봐요.
Ep24. 알고리즘의 속도는 어떻게 표현할까?
이것도 니꼬샘의 유투브를 보면 정말 간단합니다!
그래도 살짝 맛만 보자면
제가 작성한 블로그에서 확인해봐요.
Ep25. 검색 알고리즘이 뭐죠?
가장 중요한 것은 정렬이 잘 되어진 배열 안에서 검색을 하는 조건으로 부터 시작이 되기 때문에 이건 잘 생각해야합니다.
1,2,3,4,5,6,7,8,9에서 8을 찾고 싶으면 어떤 방법이 있을까요?
앞에서 부터 차례대로 찾는 for 반복문이 있겠죠. 그럼 이것은 n번 확인하는 것이기 때문에 숫자가 1억개 있으면 1억번을 뒤적거려야합니다.
하지만 숫자 중간을 기준으로 작냐 크냐를 따지면서 좁혀간다면?
8찾기 시작!
1,2,3,4,5,6,7,8,9
6,7,8,9
8,9
찾았다!
뭐 이렇게 줄어듭니다. logN번으로요.
소감
자료구조나 알고리즘을 배우면 흥분하게 되는데, 저의 코드에 어떻게 써먹어야하는지 감이 안올 때가 대부분입니다. 어떻게 저장해야 빠르게 저장되고 불러올 수 있는지나, 이 알고리즘을 이용해서 어떻게 자료를 정렬하거나 찾아와야하는지 모르겠습니다. 이해를 해도 어디에 사용해야하는지 모를 때 답답함을 느끼지만, 언젠가는 사용하겠지라는 마음으로 오늘도 하나씩 배워가겠습니다.
'코딩 개발' 카테고리의 다른 글
코딩테스트 - 대충 만든 자판 (0) | 2023.02.25 |
---|---|
IT 5분 잡학 사전 EP26~EP29 (0) | 2023.02.25 |
IT 5분 잡학 사전 EP16~EP21 (0) | 2023.02.23 |
코딩테스트 - 미로 탈출 (0) | 2023.02.20 |
알고리즘 - Dijksrta (다익스트라) (feat. Javascript) (0) | 2023.02.20 |