본문 바로가기

Algorithm/개념

[Algorithm] 알고리즘과 자료구조 차이점

728x90

코딩테스트 준비를 하다보니, 알고리즘과 자료구조의 정확한 차이점을 구분하지 못한다는 것을 알았다.

개념을 알고 공부하는 것과 그렇지 않는 것은 차이가 있기 때문에, 이 기회에  알고리즘과 자료구조에 대해 정리하려한다.

 

더불어 자바스크립트 코딩테스트 준비시 도움되는 사이트도 소개해보려 한다.

 

 

1. Algorithm(알고리즘)

알고리즘은 어떠한 문제를 풀 수 있는 정확한 방법을 말하며, 그 방법을 정의해 놓은 규칙을 의미한다.

대표적으로 선형탐색, 이진탐색, 삽입정렬, 퀵정렬 등이 있다.

 

 

2. 자료구조

자료구조는 데이터를 특정 방식으로 구성하고 저장함으로써 효율적으로 접근하고, 수정할 수 있도록 도와주는 것을 말한다.

말 그대로 '데이터를 담는 구조'를 의미한다고 생각하면 된다.

 

데이터 값들, 데이터 간의 관계, 데이터를 다룰 수 있는 함수와 작업의 모임 같이

데이터가 저장된 형태를 결정하는 것 모두 자료구조라 한다. 

 

대표적으로 큐(Queue), 스택(Stack), 해시(Hash),  리스트(List) 등이 있다.  

 

 

3. 자료구조와 알고리즘 차이점

자료구조는 데이터를 상황에 맞게 저장하기 위한 구조를 말하고,

알고리즘은 이러한 자료구조의 데이터를 활용해 어떠한 문제를 해결하는 방법을 의미한다. 

 

 

3. 사이트 소개

아래 사이트들은 모두 무료로 코딩테스트를 연습할 수 있는 사이트이다.

 

1) 알고리즘 및 자료구조 정리 사이트

 

https://github.com/trekhleb/javascript-algorithms/blob/master/README.ko-KR.md

 

자바스크립트 자료구조와 알고리즘을 정리해놓은 사이트이다. 

링크를 클릭하면 자세한 설명과 함께 예시도 볼 수 있다.

 

 

2) 프로그래머스 & 백준 & 코드업

 

https://school.programmers.co.kr/learn/challenges?order=recent

https://www.acmicpc.net/

 

프로그래머스와 백준은 코딩 기출 문제가 모아져있는 대표적인 사이트이다.

단계별로 코딩테스트를 할 수 있다.

 

 

3) 코드업

https://www.codeup.kr/

 

코딩 테스트 문제 풀이 사이트이다.

 

 

4) 삼성SW 익스퍼트 아카데미

https://devpouch.tistory.com/107

 

삼성에서 운영하는 코딩테스트 사이트로,

상시 테스트를 특정 등급에 도달하면 삼성 SW 직군 신입사원 지원시 가산점을 받을 수 있다. 

 

영상 학습하기, 스터디 등의 컨텐츠가 있다.

 

 

5) Github

 

https://github.com/search?q=%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8&type=repositories

 

Github에서 코딩테스트를 검색하면 다양한 문제들을 확인할 수 있다.

간혹 스터디나 기업에서 출제된 코딩 테스트도 볼 수 있다. 

 

728x90