본문 바로가기

Devops9

[Python] 자료구조 LinkedList 구현하기 ▏목적 ◦ 자료구조 Linked List 이해하기 ◦ Python으로 Linked List 구현하기 ▏자료구조 Linked List 란? Linked List (연결 리스트)란 크기 변경이 유연한 자료구조다. 때문에 데이터를 자유롭게 삽입 · 삭제할 수 있다는 장점이 있다. 집합의 단위를 List, 각 요소들의 단위를 Node 라고 부른다. LinkedList는 한 줄로 연결된 형태로, 리스트의 첫 번째 노드를 Head (헤드), 마지막 노드를 Tail (테일) 이라고 한다. 각 노드는 1. 데이터의 내용을 담는 부분 2. 다음 노드의 주소값을 지닌 포인터 변수 로 구성되어 있다. LinkedList를 배열과 비교하여 장단점을 살펴보자. 장점 - 삽입, 삭제의 용이성 배열은 index 로 크기가 정해져 .. 2023. 1. 12.
깃허브(GitHub) 프로필 5분만에 예쁘게 꾸미기 ▏시작하는 말 깃허브 프로필을 꾸민 게 벌써 1,2년 전이라 새로운 화면을 만들고 싶은 마음에 찾아보다 두 번째 사진과 같은 프로필을 발견해서 간단하게나마 꾸며보았다. 내 프로필이 마음에 든다면 이 게시글을 읽고 그대로 따라 하면 누구든 쉽게 만들 수 있을 것이다. 혹시나 처음 사진인 내 초기 프로필이 마음에 드는 사람이 있을까 봐 게시글 맨 마지막에 이에 관한 방법도 간략하게 설명해두었으니 참고하면 된다. 깃허브를 시작한지 얼마 되지 않았을 때 내 깃 화면 현재 내 깃 화면 조금 더 깔끔하고 화사해진 느낌이다 ▏깃허브(GitHub) 프로필 꾸미기 1. repository new repository > Repository name에 username입력 > public 체크 > create 2. GitHu.. 2022. 3. 16.
GitHub에 로컬 프로젝트 올리기 개발함에 있어 가장 중요한 게 협업이라고 할 수 있다. 그것을 도와주는 도구로는 형상관리 도구가 있는데, 오픈소스로 가장 흔히들 사용하는 것이 바로 git이다. 나 역시 git을 사용해서 프로젝트를 한 경험이 많다. 오늘은 그 git에 대한 간단한 개념과, 로컬 저장소에 있는 프로젝트를 github에 올리는 방법을 설명해보겠다. "Git" 그것이 알고싶다. Git은 소스코드를 효과적으로 관리할 수 있게 해주는 무료, 공개 소프트웨어이며,현재 가장 널리 쓰이는 분산형 버전 컨트롤 프로그램이다. 저장소에서 프로젝트를 꺼내오면 내 컴퓨터에 저장소가 만들어지고 모든 변경 이력이 저장된다. 또한 여러 곳의 원격 저장소를 등록하여 사용할 수 있다. 형상관리에 관한 자세한 내용은 "형상관리" 그것이 알고 싶다. 페이.. 2022. 3. 3.
Git 명령어 파헤치기 내가 여러 프로젝트들을 하면서 git의 중요성을 뼈저리게 느꼈다. 처음 개발자가 되기로 마음먹고 공부하고 프로젝트들을 시작했을 당시엔 github를 알지 못해 팀원들과의 협업 과정에서 코드 충돌이 매우 많았다. 이뿐 아니라 애초에 코드 통합하기 위한 과정에서부터 매번 압축을 하고 메일로 주고받아야 하는 불편함도 있었다. 처음 git을 알고 나선 명령어가 어려워 GitHub Desktop을 사용하여 버튼으로 간편하게 했었다. 이렇게 익숙해진 후 명령어도 배워보고자 해서 구글링을 통해 명령어를 공부하고 프로젝트하며 사용해보니 이젠 간단한 명령어들은 거의 외워 사용하는데 어려움 없이 잘 쓰고 있다. 이렇게 익숙해진 지금, 오늘 그 명령어를 정리해보려고 한다. 순서 정리 없이 생각나는 것들을 나열할 거라 보는 .. 2021. 9. 28.
검색(탐색) 알고리즘 이란 무엇인가? ▏목적 ◦ 검색 알고리즘 이해하기 ▏시작하는 말 알고리즘 공부를 하기 위하여 프로그래머스 Lv 2문제들을 꾸준히 하루에 한 문제씩 풀어나가는 중이다. 나는 알고리즘을 따로 배워본 적 없이 JAVA의 기초 지식만 있었기 때문에 1 / 3 정도 풀고 나니 남은 문제들은 구현은 해도 효율성이 좋지 않거나 손쉽게 풀 수 없는 문제들만 남았다. 때문에 나는 제대로 된 알고리즘 개념부터 공부해야겠다는 생각을 했다. 그래서 오늘부터 알고리즘 하나씩 공부한 후 이 블로그에 정리해보려고 한다. 오늘 공부한 것은 검색알고리즘으로 선형 검색과 이진 검색이다. ▏정의 선형 검색 : 무작위로 늘어놓은 데이터 집합 일 때 적절한 검색 알고리즘 이진 검색 : 일정한 규칙으로 늘어놓은 데이터 집합 일 때 적절한 검색 알고리즘 해시법.. 2021. 6. 18.
큐(Queue) 란 무엇인가? ▏큐(Queue) 큐는 스택과 반대로 FIFO(First-In-Last-Out) 즉, 선입선출 구조로 생각하면 된다. 다시 말하면, 한 쪽 끝에서 삽입이 이루어지고 반대쪽에서 삭제가 이루어지는 구조이다. 따라서 주로 데이터가 입력된 시간순대로 처리해야 할 경우에 사용된다. 큐에 값 추가 하는것을 Enqueue 라 하고, 값 삭제하는 것을 Dequeue 라 한다. ▏Queue연산 add() / offer() : 큐에 값을 추가한다. remove() : 큐에 가장 앞쪽에 있는 항목을 제거한다. poll() : 큐에 첫번째 값을 반환한 후 제거한다. (비어있다면 null) clear() : 큐에 모든 요소를 제거한다. isEmpty() : 큐가 비어있으면 True 아니면 False ▏참고자료 Queue를 활용.. 2021. 6. 1.
스택(Stack)이란 무엇인가? ▏목적 ◦ Stack 이해하기 ▏시작하는 말 스택 · 큐에 대한 개념을 알지 못하고 알고리즘 문제를 풀었던 적이 있었다. 도저히 해결법을 몰랐었는데 지인이 큐로 풀면 된다고 했었던 기억이 있다. 그 때 큐를 처음 알게 되었다. 하지만 정확한 개념을 이해하지 못한채로 넘어갔었다. 올 해 초, 정보처리산업기사 자격증을 취득하였고 그 과정에서 스택 · 큐 자료구조를 제대로 공부하게 되었다. 그래서 오늘 그 개념에 대해 설명해보려고 한다. 스택 · 큐 포스팅 모두 내가 직접 그림판에서 그린 것이라 그림들이 조금 엉성할 수 있다. ▏스택(Stack) 스택은 LIFO(Last-In-First-Out) 즉, 후입선출 구조로 생각하면 된다. 쉽게 말해서, 차곡차곡 쌓아올리는 개념으로 보면 된다. 삽입 삭제 모두 Top.. 2021. 5. 31.
JAVA 로 다익스트라 구현하기 | 목적 ◦ 다익스트라 알고리즘 Java로 구현하기 | 시작하는 말 다익스트라의 개념, 순서가 이해가 안된다면 다익스트라란 무엇인가 이 포스트를 먼저 보고 오면 좋다. | 초기 설정 다익스트라를 만들기에 앞서 변수 두가지를 설정해줘야 한다. distance변수는 각 노드에 갈 수 있는 최단거리를 저장한다. visit변수는 해당 노드를 방문 했는지를 체크할 변수다. int distance[] = new int[N]; //최단거리들을 저장할 배열을 만든다. boolean visit[] = new boolean[N]; //해당노드 방문여부를 체크할 배열을 만든다. | 예제 (JAVA) public class Dijkstra { private static int n; private static int maps[.. 2021. 5. 13.
다익스트라(Dijkstra)란 무엇인가? ▏목적 ◦ 다익스트라 알고리즘 이해하기 ▏시작하는 말 프로그래머스에서 "배달"이라는 문제를 풀어보았는데, 이런 유형의 문제는 처음 접해봐서 그런지 어떻게 풀어야 할지 감조차 오지 않았다. 그래서 구글에서 여러 알고리즘들을 살펴보다 최단거리를 구하는 다익스트라를 알게 되었다. 이 방법이라면 이 문제를 해결 할 수 있을 것 같아 다익스트라를 충분히 이해하고, 다시 풀어보았는데 손쉽게 풀었다. 완벽히 다익스트라를 알게된 지금, 내가 직접 문제를 만들어 설명해보려 한다. ▏다익스트라(Dijkstra) 란 무엇인가? 다익스트라는 최단거리를 탐색하는 방법이다. 쉽게 말해 특정한 한 점에서 다른 모든 점까지 가는 경로의 최소를 구하는 것이다. 이것의 가장 큰 특징은 한 점 까지의 최단거리를 구할 때 그 전까지 구한 .. 2021. 5. 11.
반응형