자료구조

· Algorithm
완전탐색이란? 완전탐색이란, 모든 경우의 수를 통한 해결 방법입니다. 기본적으로는 브루트 포스(Brute Force)라고도 합니다. 상대적으로 간단한 방법이지만 경우의 수가 많으면 많아질수록 시간이 오래 걸린다는 단점이 있습니다. 그래도 직관적이어서 이해하기 쉽고 문제의 정확한 결과값을 얻을 수 있는 기초적인 방법입니다. * 경우의 수에 따라서 실행 시간이 비례할 수 있기 때문에 입력 값의 범위가 작은 경우에 유용하게 사용됩니다. 완전탐색 기법 - 코딩 테스트 가능한 모든 경우의 수, 방법을 고려해야 합니다. 해결할 문제의 가능한 만큼 경우의 수를 계산해 봅니다. 실제로 답을 구할 수 있는지 적용해 봅니다. 완전탐색 종류 탐색 알고리즘에는 선형 탐색, 이진 탐색, 완전 탐색 총 3가지 큰 분류로 나눌 수..
배열(Array) 변수는 하나의 데이터만 저장할 수 있습니다. 그러나, 저장해야 할 데이터가 많아지면 그만큼 변수를 사용해야 합니다. 이를 해결하기 위해서 배열을 사용하면 많은 데이터를 손쉽게 처리할 수 있습니다.  배열(Array)은 메모리 상에 원소를 연속하게 배치한 자료구조입니다. 그리고 배열은 같은 탑의 변수를 담을 수 있는 고정 크기의 데이터 구조로, 메모리에 연속적으로 저장됩니다. 배열을 구성하는 각각의 값들을 배열 요소(element)라고 하며, 각 값이 저장되어 있는 위치를 인덱스(index)라고 합니다. 배열은 선언과 동시에 저장할 수 있는 타입이 결정되며, 만약에 다른 타입의 값을 저장하려고 하면 타입이 불일치하다는 컴파일 에러가 발생하게 됩니다. 그리고 배열을 한 번 생성하면 길이를 ..
코딩 테스트 문제 중에는 프로그램 실행 시간이 특정 시간 미만이어야 하는 조건이 있습니다. 일반적으로 시간은 1초를 기준으로 하며, 문제에서 주어지는 모든 형태의 입력을 처리하는 데 프로그램이 1초 이상 걸리면 안 됩니다. 시간제한이 있는 문제에서 실행 시간이 해당 제한 시간을 넘어가면 시간 초과가 발생하여 오답 처리 됩니다.하지만 효율성을 측정하는 문제의 경우 대부분 입력 크기가 매우 큽니다. 1만 개의 입력을 받는 문제를 풀 때 코드가 효율적인지 측정하기 위해 모든 입력을 직접 넣기 힘듭니다.. 이때 우리가 작성하는 코드의 실행 시간이 입력 데이터의 크기와 어떤 관계가 있는지 파악해서 그 효율성을 계산해야 합니다. 이렇게 코드 혹은 알고리즘의 실행 시간과 데이터의 상관관계를 시간 복잡도라고 합니다.시..
✏️본 게시글은 자바로 배우는 핵심 자료구조와 알고리즘을 학습한 내용을 개인적으로 학습하기 위해 정리한 글입니다. 3.1 MyArrayList 메서드 분류 3.1.1 get 메서드 구현 public E get(int index) { if (index = size) { throw new IndexOutOfBoundsException(); } return array[index]; } get 메서드에 있는 모든 것은 상수 시간입니다. 따라서 get 메서드는 상수 시간입니다. 3.1.2 set 메서드의 구현 public E set(int index, E element) { E old = get(index); array[index] = element; return old; } set 메서..
2023.03.12 - [Study/Think Data Structures] - [자바로 배우는 핵심 자료구조와 알고리즘] 1장. 인터페이스 [자바로 배우는 핵심 자료구조와 알고리즘] 1장. 인터페이스 ✏️본 게시글은 자바로 배우는 핵심 자료구조와 알고리즘을 학습한 내용을 개인적으로 학습하기 위해 정리한 글입니다. 이 책은 다음 세 가지 주제를 다룹니다. 자료구조 알고리즘 분석 정보 gyunny.tistory.com ✏️본 게시글은 자바로 배우는 핵심 자료구조와 알고리즘을 학습한 내용을 개인적으로 학습하기 위해 정리한 글입니다. 프로파일링 접근법을 통해 어떤 응용 프로그램에서 어느 클래스가 더 좋을지 둘 다 시도해 보고 각각 얼마나 걸리는지 비교하면 됩니다. 대신 몇 가지 문제점이 있습니다. 알고리즘을 ..
✏️본 게시글은 자바로 배우는 핵심 자료구조와 알고리즘을 학습한 내용을 개인적으로 학습하기 위해 정리한 글입니다. 이 책은 다음 세 가지 주제를 다룹니다. 자료구조 알고리즘 분석 정보 검색 1.1 리스트가 두 종류인 이유 Java Collections Framework를 사용하다 보면 ArrayList와 LinkedList 클래스를 헷갈릴 수 있습니다. 왜 자바는 List 인터페이스에 두 가지 구현을 제공할까? 둘 중에 어떤 것을 선택해야 할까? 예제를 통해 ArrayList, LinkedList와 유사한 클래스를 구현하고, 따라서 이들의 동작 방법과 각각의 장단점을 학습할 예정입니다. 어떤 동작은 ArrayList가 빠르거나 저장 공간을 적게 사용하고 다른 상황에서는 LinkedList가 빠르거나 메모..
규니95
'자료구조' 태그의 글 목록