본문 바로가기

자료구조, 알고리즘

자료구조, 알고리즘이란?

728x90
자료구조란? 

 

자료구조란 말 그대로 자료, 데이터들을 저장하는 구조이다. 

 

이렇게 자료를 저장하는 구조에 따라 탐색, 삽입, 삭제 등의 수행시간이 모두 다르다.

 

절대적으로 좋은 자료구조는 없으며 상황에따라 상대적으로 좋을 수는 있다.

 

Java Collection Framework

 

자바에서는 다음과 같이 Collection FrameWork를 제공하며 크게 List계열, Set계열, Map계열로 분류할 수 있다. 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

알고리즘이란?

 

알고리즘이란 자료구조들을 이용하여 문제풀이를 한다고 생각하면 된다. 

알고리즘에서 가장 중요한것은 1) 정확도 2) 효율성 이다. 

실제 코딩테스트에서도 이 2가지를 중점적으로 본다. 

 

1) 정확도는 어떠한 테스트케이스에도 원하는 결과값이 정확히 나오는지 따지는 것이다. 

 

2) 효율성은 같은 결과값이 나오더라도 더 효율적인 풀이인가?를 따지는 것이다. 

즉, 같은 문제풀이에 있어서 수행시간이 더 짧을수록 더 좋은 알고리즘을 사용했다고 할 수 있는것이다. 

여기에 쓰이는 개념이 알고리즘마다 수행시간을 분석하는 빅오(BIG O) 개념이다. 

 

 

이렇듯 자료구조와 알고리즘은 서로 뗄 수 없는 관계이며 밀접한 관계가 있다.