목록전체 글 (60)
connecting the dots
LinkedList란 ? LinkedList는 ArrayList와는 다르게 엘리먼트와 엘리먼트 간의 연결(link)을 통해 리스트를 구현합니다. 배열과는 다르게 LinkedList는 데이터의 위치가 흩어져있기 때문에 서로 연결되어있어야 합니다. LinkedList는 자료구조에서 다양하게 사용되기 때문에 개념을 잘 이해해야 합니다. 용어를 정리해봅시다. array list에서는 엘리먼트라는 이름을 사용했지만 linked list와 같이 연결된 엘리먼트들은 노드(node, 마디, 교점의 의미) 혹은 버텍스(vertex, 정점, 꼭지점의 의미)라고 부릅니다. 이런 용어들은 연결성이 강조된 표현이라고 생각하시면 됩니다. 엘리먼트, 노드, 버텍스 모두 같은 의미입니다. LinkedList의 특징 - LinkedL..
지난 포스팅에서는 Java에서 자주 쓰이는 ArrayList에 대해 알아보았습니다. 오늘은 ArrayList와 비슷하게 쓰이는 Vector의 개념과 활용방법에 대해 알아보겠습니다. Vector란? Vector는 ArrayList와 동일한 내부 구조를 가지고 있습니다. 정수 인덱스를 통해 값에 접근할 수 있고, 동적으로 메모리를 할당합니다. 현재의 Vector 클래스는 Collections 프레임워크와 완벽하게 호환됩니다. Vector와 ArrayList 비교 - 동기화 Vector가 동기화된다면 ArrayList는 동기화되지 않은 상태입니다. Vector가 동기화 된다면 ArrayList는 동기화가 되지 않은 상태입니다. 쉽게 말해 Vector는 한번에 하나의 스레드만 접근 가능하며, ArrayList는..
ArrayList 정의 ArrayList는 Java에서 가장 많이 사용되는 자료구조입니다. 배열처럼 인덱스와 Value로 구성되어 있습니다. 배열과 동일하게 연속된 메모리 공간을 사용하지만, 배열과의 차이점은 ArrayList는 크기가 가변적으로 변한다는 점입니다. 따라서, 만약 데이터를 추가하고자 한다면 더 큰 용량의 메모리를 할당해줍니다. ArrayList 사용 Java에서는 ArrayList를 제공하므로 여러분이 직접 ArrayList를 구현할 일은 없을 것입니다. 그럼 ArrayList를 사용하는 법을 알아봅시다. - ArrayList 생성 import java.util.ArrayList; ArrayList numbers = new ArrayList(); ArrayList numbers = new..
문제 www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 풀이 1. 완전탐색을 통해 arr[i][j]=1인 가구를 찾는다. 2. 방문한 가구의 값은 key 값으로 바꾸고, 단지 내 다른 가구들을 찾는다.(dfs) 3. for문을 통해 같은 key값을 갖는 가구들 수를 세어 배열에 넣는다.(arrSize 배열) * - isInside 함수를 사용해 boundary를 벗어나지 않는지를 체크한다. - 처음 단지 별 key값을 1,2,3으로 하려고 했으나, key를 1로..