본문 바로가기

야놀자 테크스쿨/JAVA 자료구조13

[면접을 위한 CS 전공지식 노트][자료구조] Array(배열)와 ArrayList 0. 개요 JAVA에서는 배열을 직접 사용할 수도 있고, 배열을 사용하기 쉽게 구현해놓은 ArrayList가 존재한다. 자료구조를 공부하면서 이 부분에 대해서 정리하여 기록하고자 이 글을 작성한다. 1. Array 배열이라는 자료구조의 특징을 살펴보면, 1. 선형적인 자료구조이다. 2. 데이터를 일렬로 늘여놓은 형태이다. 3. 물리적으로도 데이터가 메모리에 연속적으로 저장된다는 특징을 가지고 있다. 4. 같은 데이터 타입만을 저장할 수 있다. -> 다른 데이터 타입을 저장하고자 한다면 class 선언을 하여 객체를 이용하여 사용할 수 있다. 등을 이야기 해볼 수 있겠다. Java를 이용해 프로그래밍을 하는 경우 종종 배열을 직접 사용하는 경우도 있지만, 대부분의 경우 배열을 사용하기 쉽게 구현해놓은 Ar.. 2023. 8. 2.
[면접을 위한 CS 전공지식 노트][자료구조] 자료구조에 따른 시간 복잡도 0. 개요 프로그래밍을 하면서 알고리즘의 효율을 측정할 수 있는 지표로는 크게 시간 복잡도와 공간복잡도가 있다. 알고리즘이 메모리를 얼마나 쓰는지 나타내는 것이 공간복잡도이고, 알고리즘이 문제를 해결하는데 걸리는 시간이 시간복잡도 이다. 과거에 하드웨어의 스펙이 좋지 않았을 적에는 이 두 가지 모두를 고려하면서 프로그래밍을 진행했지만, 최근 하드웨어의 성능이 좋아지고 나서부터는 공간복잡도 보다는 시간복잡도를 고려하여 프로그래밍을 하는 추세인 것 같다. 또한 시간복잡도와 공간복잡도는 트레이드오프 관계에 있다. 최근은 하드웨어 성능이 좋아짐에 따라 시간복잡도를 기준으로 알고리즘의 효율을 많이 측정하는 추세다. 그러므로 이 글에서는 공간복잡도 보다는 자료구조와 시간복잡도에 대한 것을 중점적으로 정리해 볼 계획.. 2023. 7. 31.
[JAVA][자료구조] Java에서 Stack을 사용하는 방법 대해 알아보자! 0. 개요 코딩테스트를 준비하면서 Stack이라는 자료구조를 사용하게 되었는데, Java에서는 어떠한 형식으로 Stack을 사용할 수 있게 제공해주는지, 어떤 메서드를 제공해주는지 정리하고자 이 글을 작성한다. 1. Java에서 제공해주는 Stack Queue와는 다르게 Java에서 Stack은 클래스로 구현이 되어 사용할 수 있게 제공해준다. 잠깐 예전에 정리했던 Queue에 대해서 복기를 해보자면, Queue 같은 경우 new LinkedList()를 통해 생성하여 인터페이스에 해당하는 메소드를 사용했지만, Stack같은 경우 new Stack()으로 객체를 생성하여 스택을 사용할 수 있다!! Stack은 Vector를 상속받아서 구현되어 있는 것을 아래 사진을 통해 확인할 수 있다. 그리고 초록색으.. 2023. 7. 17.
[JAVA][자료구조] JAVA Queue 사용법. 0. 개요 코딩테스트를 준비하면서 필요한 java 자료구조와 메서드에 대해서 정리하고자 이 글을 남긴다. 나 같은 경우에는 평소에 queue를 사용해본적이 거의 없기 때문에 어렴풋이 queue가 java에서는 인터페이스로 구현되어 있는다는 사실을 알고만 있을 뿐 이었다. 이번에 코딩테스트를 준비하면서 queue를 사용할만한 문제가 나와서 이번기회에 java에서 queue에 대한 메서드를 정리하고 이해하려고 이 글을 작성한다. 1. JAVA에서 구현된 queue 메서드 이 글을 읽는 분들은 큐라는 자료구조에 대해서 이해가 있을 것이라고 생각한다. 선입선출의 대표적인 자료구조로써 많은 곳에 사용된다. 자! 그럼 자바에서 queue는 어떻게 구현해놓았는지 살펴보자! 먼저 서두에서도 이야기 했듯이 자바에서는 큐.. 2023. 7. 16.