
개요 > 프로그래밍에서 데이터를 효율적으로 관리하기 위해 다양한 자료구조가 사용된다. 그중 배열은 가장 기본적인 형태지만, 크기가 고정되어 유연성이 떨어지는 단점이 있다. 이러한 단점을 보완하기 위해 리스트가 등장했으며, 자바에서는 ArrayList, LinkedLi

개요 > 개요 ArrayList의 단점과 Node ArrayList의 단점 공간낭비 ArrayList는 배열을 사용하여 데이터를 저장함으로 배열을 미리 확보해야만 한다. 만약 데이터가 배열의 크기만큼 사용되지 않는다면 나머지 공간은 낭비가 된다. 배열 중간에

리스트(ArrayList)는 인덱스를 활용해 원하는 위치의 값을 O(1)의 시간 복잡도로 빠르게 조회할 수 있다. 하지만 인덱스를 모른 채 특정 값을 검색해야 할 경우 리스트 전체를 순회해야 하므로 시간 복잡도는 O(n)으로 증가한다. 그렇다면 값을 검색할 때 O(n)

개요 Stack이란 위 그림과 같이 아래는 막혀 있고 위쪽만 열려 있는 구조이다. 값은 위쪽에서만 추가하거나 제거할 수 있다. 이렇게 나중에 넣은 값이 먼저 나오는 구조를 후입선출(LIFO, Last In First Out)이라 하며, 이러한 자료 구조를 스택(St

함수형 인터페이스를 알아보기 앞서서 간단한 코드를 만들어보자 요구사항은 이름을 출력하고, 걸린 시간을 출력하는 코드이다.요구사항에 맞춰서 코드를 작성해고 잘 출력이 되는 것을 확인할 수 있다. 하지만 작성된 코드를 살펴보면 중복되는 코드들이 눈에 보일 것이다. 그럼 이

쓰레드란 무엇인가? 프로그램이란? 21세기를 사는 우리에게 스마트폰이나 컴퓨터 없는 일상은 상상하기 어려울 것이다. 우리가 이 전자기기를 통해 사용하는 메신저, 웹 브라우저, 게임 등은 모두 프로그램이다. 그렇다면 프로그램이란 정확히 무엇일까? 컴퓨터가 실행할

개요 > Java를 처음 공부할때 처음 배우는 내용이 콘솔에 메시지를 출력하는 System.out.printlan(Hello World)와 사용자의 입력을 받는 scanner.next(Helle World)일것이다. 처음에는 단순히 출력하는 코드와 입력하는 코드 정도