[Data Structure] Array List 구현
·
Algorithm&Data Structure
[구현 바로 가기]더보기List 인터페이스ArrayList 클래스 생성자, 필드, 동적 할당addremove각 종 유틸리티 Array List는 자료구조에서 제일 기본이자 핵심적인 자료구조이다. 🎯Array List와 Array의 차이는 뭘까? int[] arr = new int[5]; 이런 배열은 한 번 배열의 크기를 정해주면 끝까지 최대 5의 값의 공간을 지닌다. 일반 배열은 고정된 크기의 자료 구조이고 타입은 기본형, 참조형 모두 가능하다. 일반 배열은 성능이 좋고 구조가 단순하다. 계획적인 프로그래밍에서는 메모리가 더 효율적일 수 있다. 일반 배열의 한계 1. 크기가 고정되어 메모리 낭비나 크기가 부족할 때 문제가 생긴다. 2. 기능들이 부족하다. 동적 배열을 위한 ArrayL..
[Git] 기초 명령어 (1)
·
Git & GitHub
Git이란? Git의 기본 구조 1. Working Directory (작업 디렉터리) 실제로 코드를 수정하는 곳2. Staging Area: 커밋할 준비가 된 파일들이 있는 곳3. Repository: 커밋들이 저장되는 로컬 저장소 git init 현재 폴더를 Git 저장소로 초기화..git 폴더가 생성되어 Git이 버전 관리하게 된다. Git이 파일을 추적하게 된다. git init git status 어떤 파일이 수정되었고, 어떤 파일이 스테이징 되어 있는지 확인하는 명령어현재 디렉토리 상태 확인하는 명령어이다.git status git staus 명령어를 입력하면 크게 세 가지를 알려준다. 1. 현재 브랜치 이름2. 커밋되지 않은 변경 사항 (수정, 삭제, 새 파일 등)3. 어떤 파..
[Java] 불변 객체
·
Java
자바에서 데이터 타입은 크게 기본형과 참조형으로 나뉜다. 기본형: 하나의 값을 여러 변수에서 공유하지 않는다.참조형: 하나의 객체를 참조값을 통해 여러 변수가 공유한다. 기본형 값 복사 package immutableBlog;public class CallByValue { public static void main(String[] args) { int a = 7; int b = a; System.out.println("a = " + a); System.out.println("b = " + b); b = 300; System.out.println("a = " + a); System.out.println("b =..
[Data Structure] 덱
·
Algorithm&Data Structure
이번에는 덱 구조에 대해 구현해 보자. 큐는 전단부에서는 삭제만 가능하고 후단부에서는 삽입을 하는 구조이다. 덱은 큐와 비슷하지만 전단부 후단부 모두 삽입 삭제가 가능한 선형 자료구조이다. 덱은 원형 큐와 동일하게 원형적으로 순환하는 구조이다. 덱을 구현하기 전 꼭 원형 큐를 구현해 보고 덱을 구현해 보는 것이 학습에 도움이 될 것 같다. 덱의 특징 덱은 Double Ended Queue로 큐의 확장된 형태라고 볼 수 있다. 앞(front) 뒤(rear) 모두 데이터 삽입 삭제 연산이 가능하며 기본적으로 큐와 동일하게 선입선출 FIFO가 기본이지만 유연하게 양쪽 접근이 가능하다. 덱이 쓰이는 곳덱은 앞 뒤에서 비교하는 로직에서 사용되고 슬라이딩 윈도우 최댓값/최솟값 문제에서도 사용된다. 운영체제 ..