If today was hard, tomorrow will be easy.

간결하고 의미있는 코딩을 위하여.

GitHub - Inchijeong 바로가기→
728x90
반응형

전체 글 61

[Tree] Trie Tree 개념

트라이 트리(Trie Tree)에 대해 알아볼겠습니다. 트라이 트리(Trie Tree) 란? 특히 문자열에서 빠르게 검색을 해주는 트리 구조 Binary Tree의 경우 노드의 배열에서 검색을 하기 O(long n) 시간복잡도를 갖아 비효율적이다. Trie Tree의 경우 사전을 만든다고 가정 단어의 한글자씩 노드에 저장시켜 다음 글자를 Child Node에서 찾는다. 트리에 문자열이 세로로 저장되어 있다. Root Node는 비운다 시간 복잡도는 O(M) 링크 아래 강의를 참고하여 작성하였습니다. 엔지니어대한민국 - Trie(트라이) Tree에 대해서

DataStructure 2021.01.14

[Tree] Binary Heaps 개념

이진 힙(Binary Heaps)에 대해 알아볼겠습니다. 힙(Heap) 이란? 최대값이나 최솟값을 빠르게 찾기 위해 고안된 완전 이진 트리를 기본으로한 자료구조 최소힙(Min Heap) 항상 부모 노드에 작은 값을 위치 루트에는 가장 작은 값이 위치 최대힙(Max Heap) 항상 부모 노드에 큰 값을 위치 루트에는 가장 작은 값이 위치 최소힙에 노드 삽입하기 새로운 노드를 마지막 레벨의 왼쪽부터 채운다. 자신(새로운 노드)과 부모랑 비교하여 자신이 작으면 부모랑 자리를 바꾼다. 루트에 도달하거나 부모가 자신 보다 클때까지 2번을 반복한다. 시간 복잡도는 O(logN) 최소힙에서 노드 꺼내오기 루트에서 최소값을 꺼낸다. 맨마지막 노드의 값을 루트에 채운다. 자신과 자식 노드들과 값을 비교하여 자기보다 더 ..

DataStructure 2021.01.14

[Tree] Binary Tree 순회 방법

Binary Tree 순회 방법에 대해 알아볼겠습니다. Binary Tree Traversal 이진 트리를 횡단하면서 트리의 모든 데이터를 가져오는 방법 Inorder Left - Root - Right Preorder Root - Left - Right Postorder Left - Right - Root Exemple 예제를 통한 순서 알아보기 Inorder 4 - 2 - 5 - 1 - 3 Preorder 1 - 2 - 4 - 5 - 3 Postorder 4 - 5 - 2 - 3 - 1 Binary Tree 구현 코드 in Java class Node { int data; Node left; Node right; } class Tree { public Node root; public void setR..

DataStructure 2021.01.14

[Tree] Tree의 개념, 종류

트리(Tree)에 대해 알아볼겠습니다. 트리(Tree)란? 부모 자식관계를 가지는 자료 구조 계층, 그룹이 있다. 부모 노드(Parent Node)는 하나 이상의 자식(Child Node)을 갖고 있다.(Leaf Node 제외) 부모가 없는 맨 위의 노드 루트 노드(Root Node)라 부른다 트리의 맨 끝에 자식이 없는 노드를 잎 노드(Leaf Node)라 부른다. 루트 노드부터 잎 노드까지 Level이 0, 1, 2 ... 하나씩 증가한다. 이진 트리(Binary Tree) 자식 노드가 최대 2개까지면 이진트리(Binary Tree) 자식 노드가 최대 3개까지면 Ternary Tree 이진 탐색 트리(Binary Search Tree) 왼쪽 자식 노드들과 그 이하 노드들은 자신보다 작아야하고 오른쪽 ..

DataStructure 2021.01.14

[Queue] Queue 개념, 구현

큐(Queue)에 대해 알아볼겠습니다. 큐(Queue)란? 먼저 저장한 데이터를 가장 먼저 꺼낼 수 있는 자료구조 FIFO(First In First Out) Queue의 주요 메소드 add - 새로운 데이터를 맨 끝에 넣음 remove - 맨 앞 데이터를 가져오면서 삭제 peek - 맨 앞 데이터를 가져옴 isEmpty - 큐에 데이터가 있는지 확인 Queue 구현 코드 in Java import java.util.NoSuchElementException; class Queue { class Node{ private T data; private Node next; public Node(T data) { this.data = data; } } private Node first; private Node l..

DataStructure 2021.01.14

[Stack] Stack 개념, 구현

스택(Stack)에 대해 알아볼겠습니다. 스택(Stack)이란? 나중에 저장한 데이터를 가장 먼저 꺼낼 수 있는 자료구조 LIFO(Last In First Out) Stack의 주요 메소드 push - 새로운 데이터를 맨 위에 쌓아 올림 pop - 맨 마지막에 넣은 데이터를 가져오면서 삭제 peek - 마지막 데이터를 가져옴 isEmpty - 스택에 데이터가 있는지 확인 Stack 구현 코드 in Java import java.util.EmptyStackException; class Stack { class Node{ private T data; private Node next; public Node(T data) { this.data = data; } } private Node top; public T..

DataStructure 2021.01.14

[LinkedList] 단방향, 양방향 연결 리스트

단방향 연결 리스트(Singly Linked List)와 양방향 연결 리스트(Doubly Linked List)에 대해 알아볼겠습니다. 단방향/양방향 연결 리스트란? 단방향 연결 리스트(Singly Linked List) 다음 노드의 주소만 가지고 있다. 양방향 연결 리스트에 비해 메모리 공간을 절약할 수 있다. 양방향 연결 리스트(Doubly Linked List) 이전 노드와 다음 노드의 주소를 가지고 있다. 리스트의 앞, 뒤에서 모두 접근 가능하다. 메모리 공간이 더 필요하게 된다. 양방향 연결 리스트 노드 추가 및 삭제 링크 아래 강의를 참고하여 작성하였습니다. 엔지니어대한민국 - 단방향/양방향 Linked List 개념

DataStructure 2021.01.14

[LinkedList] Linked List 개념

연결 리스트(Linked List)에 대해 알아볼겠습니다. Linked List 개념 자료구조의 하나로 현재 노드에 자신의 값과 다음 노드의 주소값을 가지고 있는다. 한번 선언한 배열은 사이즈를 변경할 수 없다. 반대로 링크드 리스트는 변경이 가능함. 두 노드 사이에 다른 노드를 삽입할 수 있다. 주소를 하나씩 찾아가야 하므로 배열보다는 속도가 느릴수 있다. ※ 위 그림의 주소는 다음 노드의 주소를 가리킨다. 길이가 정해지지 않은 데이터를 사용할때는 링크드리스트로 구현하자. Linked List 노드 추가/삭제 Linked List 노드 추가 삽입하고자 하는 두 노드의 연결을 끊는다. 이전 노드의 다음 주소를 새 노드로 연결한다. 새 노드의 주소를 다음 노드로 연결한다. Linked List 노드 삭제 ..

DataStructure 2021.01.14

[Eclipse] 인코딩 UTF-8 설정

이클립스(Eclipse)를 설치 이후 UTF-8 설정을 해보겠습니다. 설치 방법은 [Eclipse] Eclipse IDE 2020‑12 설치 글을 참고 하세요. 이클립스 인코딩 환경 설정 상단에 있는 탭에서 Window - preferences 아래 순서대로 설정하고 apply General - Workspace - Other - UTF-8 General - Editors - Text Editors - Speling - Encoding - Default (UTF-8) General - Content Types - Text - Java Properties File - Default encoding: UTF-8 Web - CSS Files - Encoding - ISO 10646/Unicode(UTF-8) ..

Tool/Eclipse 2021.01.05

[Tool] 스크린샷 툴 추천 - 라이트샷(LightShot)

오늘은 라이트샷(LightShot)에 대해서 소개해드리겠습니다. 픽픽은 경량화된 스크린샷 및 이미지 수정 소프트웨어입니다. 개인적으로 직접 사용해보고 주변에 추천 드리고 있습니다. 장점 픽픽(PickPick)에 비해 가볍다 캡처 이후 윈도우에서 직접 이미지 수정 가능 무료 설치 아래 링크로 접속하여 공식 홈페이지에서 바로 다운로드를 받으실 수 있습니다. https://app.prntscr.com/en/ 아래의 다운로드 버튼을 눌러 설치해주세요. 사용 방법 키보드의 PrtSc키 눌러 영역을 지정 우측의 원하는 도구 모음으로 이미지 수정 하단의 공유하기 혹은 저장 버튼 클릭 링크 LightShot Download

Tool/ETC 2021.01.04

[Tool] 스크린샷 툴 추천 - 픽픽(PickPick)

오늘은 픽픽(PickPick)에 대해서 소개해드리겠습니다. 픽픽은 국내 개발자가 만든 스크린샷 및 이미지 수정 소프트웨어입니다. 저는 이 툴을 이용하여 블로그 글이나 문서를 만들때 유용하게 사용하고 있습니다. 개인적으로 직접 사용해보고 주변에 추천 드리고 있습니다. 장점 전체 화면 캡처, 윈도우창만 캡처, 영역 지정 캡처 등 다양한 캡처 기능 제공 캡처 이후 그림판으로 바로 이미지 수정 가능 각도기, 눈금자, 프레젠테이션 도구 등 무료 설치 아래 링크로 접속하여 공식 홈페이지에서 바로 다운로드를 받으실 수 있습니다. https://picpick.app/ko/download 아래의 다운로드 버튼을 눌러 설치해주세요. 사용 방법 원하는 단축키로 캡처 기본값은 다음과 같습니다 실행 아이콘의 우클릭을 사용하여도..

Tool/ETC 2021.01.04
728x90
반응형