Tree 노드들이 나무가지처럼 연결된 비선형 계층 구조로 나무를 거꾸로 뒤집어 높은 모양과 유사하다. 트리내에 다른 하위 트리들이 반복되어 있는 재귀적 구조자료라고도 한다. 노드의 특징은 아래의 리스트와 같다 하나의 루트 노드에 0개이상의 하위 트리로 기본 구성이 되어있다. 데이터를 순차적으로 저장하지 않는 비선형 자료구조이고 트리안에 또다른 트리가 있는 재귀적 구조자료이기도 하다. 노드간에 부모와 자식관계를 가지고 있는 계층형 구조자료인데 자식노드는 하나의 부모노드만 가진다. 노드가 n개인 트리는 항상 "n-1" 개의 간선을 가진다. 트리 용어 일람 root: 최상위 노드 parent: child를 갖는 노드 child: parent를 갖는 노드 edge: 노드를 연결하는 선, depth: root부터..
자료구조 자료구조는 여러 종류의 데이터들의 묶음을 저장하고 그 데이터에 대해 사용했던 방법을 정의해둔것이다. 데이터를 체계적으로 저장하고 또한 효율적으로 활용하기 위해 자료구조를 사용하고 있고 대부분의 만들어진 자료 구조는 특정 상황에서 높인 문제를 해결하는데 특화되어 있다고 할 수 있다. Stack 쌓다 또는 쌓이다 같은 뜻을 가지고 있는 이 자료구조형은 FILO/LIFO 즉 후입선출 방식으로 마지막에 들어온 데이터가 먼저나오는 방식의 로직으로 이루어져있다 특징으로는 다음과 같다 먼저 들어간 데이터가 나중에 나와야 한다. (선입후출) Stack은 하나의 입출력 방향을 가지고 있고 한쪽에서만 삽입과 삭제 연산을 수행한다. 자바에서는 Stack을 사용하기 위한 패키지를 제공하고 있다. import java..
재귀 함수 재귀 함수(Recursion)는 특정 함수 내에서 자기 자신을 다시 호출하여 정의된 기능을 수행해나가는 함수로써 요구되는 기능을 작은 범주로 세분화해서 제일 작은 문제부터 먼저 해결해 나감으로써 문제를 해결해나가는 방식이라고 할 수 있다. 또한 "반복문 -> 재귀함수" / "재귀함수 -> 반복문" 로 구현이 가능하다. 재귀 함수는 계속 자신을 호출하는 방식을 사용하기 때문에 종료 구간인 Base Case를 정의해야 한다. 한번 아래의 예제를 살펴보자 재귀함수 예제 | Loop public class RecursionEx { public static void main(String[] args) { Recursion(); } public static void Recursion() { System...
Section 1 회고 벌써 코드 스테이츠 부트 캠프 강의를 들은 지 거의 한 달이 되어간다. 줌에서 얼굴 이상하게 나오는게 아닌지 잘 적응이 가능할지 그리고 여기를 선택한 게 나에게 있어서 정답이었는지는 아직 확실치는 않다. 하지만 약 한달간의 과정을 진행하면서 느낀 점은 그저 우직하게 공부만 하는것이 답은 아니라는 점이었다. 부트캠프 과정 중에 진행된 다양한 커리큘럼들은 꽤나 색다른 공부 재미를 나에게 부여해주었는데 앞으로도 하게 되겠지만 좀 더 이야기해보고자 한다. 페어 프로그래밍 페어 프로그래밍은 같은 강의를 듣는 동기분들하고 페어를 이루어서 같이 머리를 사용하여 지정된 프로그래밍 등의 과제에 대해서 해결을 하고 그 결과물을 서로 토론하거나 제출하는 등의 과정이었다 [트위틀러 목업 보러 가기] 첫..
자바 프로그래밍을 진행할 때 효율적으로 활용하는 방법 '이펙티브' 확실히 아직 자바 초보인 내가 활용하기에는 머나먼 기술인 거 같다 약간 발을 담근 정도? 계속 프로그래밍을 하면서 실력을 쌓아가다보면 활용하는 방식에 대해 통달하는 날이 올 거라 믿는다.. 스레드 자바에서 스레드를 활용하기 위한 방법에 대해 이야기하고자 한다. 프로세서는 실행중인 애플리케이션을 말하고 스레드는 코드의 실행되는 흐름이라고 할 수 있다. 메인 스레드 자바를 실행하면 제일 먼저 실행되는 main 메서드로 메인 스레드가 main 메서드를 실행시켜준다고 보면 된다. 메인 메서드의 코드를 처음에서 시작하여 코드 끝이나 또는 리턴 문을 만나게 되면 종료된다 멀티 스레드 한개의 프로세가 여러 개의 스레드를 가진다면 그걸 멀티 스레드 프로..
회고 섹션 1의 마지막 라인에 도달했다 오늘 굿모닝 세션에서 강사님들의 이야기를 들으면서 생각한것은 빠쁘게 달려온지 벌써 한달이 거의 다되가는가에 대한 생각이 든것이다. 배운것도 많지만 온전히 내것으로 만들었는지에 대해서는 의구심이 그저 들 뿐이다. 좀더 심화적으로 다양하게 응용하고자 하는 메타 인지가 필요하다고 생각이 든다. 열거형(enum) 열거형은 자바에서 보다 여러가지의 상수를 편리하게 선언할 수 있도록 했다고 보면 되는데 즉 서로 관련있는 상수들을 모아서 그룹으로 관리한다고 할 수 있다. 열거형을 정의하는 방법은 아래 하이라이트를 통해 확인할 수 있다, enum Seasons {SPRING, SUMMER, FALL, WINTER} 상수는 관례적으로 대문자로 작성한다는 점을 일단 알아두자. 현재 ..