본문 바로가기

전체 글35

[선형 자료구조] - 배열 (Array) 파이썬에서 배열은 선언 후에 append를 통해 바로 추가를 할 수 있었는데 자바에서 배열은 그렇지 않아 자바의 배열에 대해 구체적으로 작성해보고자 한다. 📌 배열이란? 배열이란 동일한 타입의 값들을 하나의 묶음으로 저장한 자료구조이다. 배열의 데이터는 메모리 상에 연속적으로 저장이 되며, 각 데이터는 인덱스(index)가 부여된다. 📌 배열의 특징 - 정적 자료구조 ✔ 배열은 같은 타입의 데이터만 저장할 수 있다. ✔ 배열은 생성 시 길이를 지정할 수 있으며, 이 길이는 추후에 변경할 수 없다. 👉 때문에 배열에 데이터를 추가해야할 경우, 기존 배열이 아닌, 새로운 배열에 복사를 해야 한다. 😸 배열의 장점 ✔ 빠른 접근 : 인덱스로 데이터에 빠르게 접근할 수 있다. ( 시간복잡도 : O(1) ) ✔ .. 2023. 12. 16.
[비선형 자료구조] - 트리 (Tree) 📗트리란? ✔ 노드와 링크로 구성된 자료구조로 주로 계층적 구조(Hierarchical Data Structure)를 나타내는데 사용된다 . 📗트리의 구조 ✔ Node (노드) : 트리 구조의 자료 값을 담고 있는 단위 ✔ Edge (간선) : 노드 간의 연결선 (link, branch) ✔ Height(높이) : 루트부터 현재 노드까지 거치는 간선의 수 ✔ Sibling Node(형제 노드) : 같은 부모의 자식 노드들 ✔ Leaf Node(리프 노드) : 자식 노드가 더 이상 존재하지 않는 트리의 맨 끝 단에 있는 노드 ✔ Depth(깊이): 자신을 제외한 부모 노드의 개수 ✔ Size(크기) : 자신을 포함한 자식 노드의 개수 ✔ Degree (차수) : 각 노드별로 가진 가지의 개수 ✔ 트리의 차.. 2023. 12. 14.
[컴퓨터 구조] - 주기억장치 : RAM, ROM 주기억 장치(Main Memory)는 메모리 (Memory)의 일종이다. 메모리는 "기억장치"라는 뜻을 가지고 있으며, 우리가 원하는 작업을 처리할 경우, 처리 대상 내용 및 결과를 잠시 기억하기 위해 메모리를 사용하게 된다. 🌟 주기억장치 / 컴퓨터 메모리는 CPU가 직접 접근하여 데이터를 처리하는 기억장치로, 현재 컴퓨터에서 수행되는 프로그램과 데이터를 저장하고 주소(Address)에 의해 저장된 위치를 구분한다. 출처 : https://wikidocs.net/122667 1. ROM ( Read Only Memory ) ROM은 오직 기억된 데이터를 읽기만 하는 장치이다. 가장 대표적인 특징으로는 ROM은 비휘발성 장치로, ROM에 존재하는 데이터는 컴퓨터의 전원이 꺼져도 필요한 데이터이면서, 해당.. 2023. 12. 12.
백엔드 커리어 로드맵(feat. 내가 되고 싶은 백엔드 개발자란) 독학으로 백엔드 공부를 시작해볼려고 하면 가장 먼저 찾아보는게 뭘 어떻게 공부해야 하는지이다. 나 또한 백엔드 쪽에 관심이 생기고 나서 알고리즘에 우연히 뜨는 백엔드 로드맵을 보고 따라 해볼려고 했는데 ㅎㅎ.... 어느정도 깊이까지 봐야하는지 도무지 감을 잡지 못했었다. 전반적인 과정을 정리해보고 공부 과정에 있어 하나의 체크리스트로 사용해 봐야 겠다. 1. 백엔드 커리어 로드맵 2. 내가 되고 싶은 개발자 백엔드 커리어 로드맵 내가 되고 싶은 (백엔드) 개발자는.. 개발자에도 여러 분야가 있으나, 대개 먼저 접하게 되는 분야는 프론트엔드와 백엔드 개발자라고 생각한다. 명확한 것을 좋아하는데, 알고리즘 문제를 풀거나 프로그래밍을 하면서 로직을 생각하고 구현하면서 정답을 확인하는 과정이 깔끔하고 좋았다. .. 2023. 11. 17.
프론트엔드와 백엔드 차이 - 개발자가 되고 싶은 이유 대학생 때 간단한 코딩 과제들을 접하면서, 코딩에 흥미를 느껴 개발자라는 직업에 관심이 생기게 되었다. 개발자라는 직업 내에서도 여러 분야가 존재하지만 우선 흔히 접하게 되는 프론트엔드와 백엔드에 대해 알아보고 그 중 백엔드를 선택하게된 계기를 작성해보려고 한다! 🐣 프론트엔드와 백엔드의 차이는 무엇인가? 프론트엔드 백엔드 백엔드 개발자가 되기로 한 이유 앞으로의 계획 프론트엔드와 백엔드의 차이는 무엇인가? 프론트엔드와 백엔드에 대해 설명하기에 앞서 간단하게 설명을 해본다면 우리가 쇼핑 웹사이트에서 물건을 구매하는 상황을 생각해보자. "아우터"라는 카테고리를 누르면 우리가 원하는 아우터들이 종류별로 이미지 사진과 함께 나열이된다. 여기서 우리가 직접 보게 되는 이 쇼핑 웹사이트와 같은 화면을 개발하는 부.. 2023. 11. 10.
[JAVA] - 화면에서 입력받는 방법 - Scanner 코테 준비를 처음하면서 사용자로부터 입력을 받는 과정을 자주 접하게 되는데 이때 자주 보이는 Scanner에 대해 살펴보고자 한다! Scanner란? 콘솔에서 키보드 입력을 받거나, 파일, 문자열로 입력 받을 때 가장 많이 사용하는 클래스이다. Scanner 사용법 1. Scanner 클래스 사용을 위해 import 진행 (아래 2개의 방법 중 하나를 선택해서 진행하면된다.) import java.util.*; import java.util.Scanner; 2. Scanner 클래스의 객체 생성 여기서 System.in 은 입력한 값을 Byte 단위로 읽으며 키보드와 연결된 자바의 표준 입력 스트림입니다. Scanner sc = new Scanner(System.in); 3. Scanner 객체 사용 (.. 2023. 11. 2.
[자료구조] 우선순위 큐 (Priority Queue) 와 힙 (Heap) 개인 공부 및 기록을 위해 작성하였습니다. 우선순위 큐와 그냥 큐 큐 (Queue) : 먼저 들어온 데이터가 먼저 나가는 FIFO(First In First Out) 형식의 자료 구조 우선순위 큐 (Priority Queue) : 우선 순위가 높은 데이터가 먼저 나가는 형식의 자료 구조 우선순위 큐는 데이터를 우선순위에 따라 처리하고 싶을 때 사용한다. 우선 순위 큐 주요 동작 insert - 아이템의 우선순위 정보 같이 넣어주는 것 delete - 가장 우선순위가 높은 애를 빼내는 것 peek - delete와 유사하나 우선순위 큐를 구현하는 방법 1. 단순 리스트를 이용하여 구현한다. 2. 힙(Heap)을 이용하여 구현한다. 위의 표와 같이 리스트는 데이터를 일일히 삽입하는데 O(1)의 복잡도를 갖지.. 2023. 9. 28.
CS 공부 개요 계획 컴퓨터 구조, 자료구조, 알고리즘, 운영체제, 네트워크, 데이터베이스 순으로 공부하기 + 백엔드 로드맵 참고 ! 참고 자료 : https://gyoogle.dev/blog/ , '혼자공부하는 컴퓨터 구조 + 운영체제 (강민철)' Computer Architecture 01 장 : 컴퓨터 구조 시작하기 컴퓨터 구조를 알아야 하는 이유 : 문제 해결 능력을 기를 수 있다. 성능, 용량, 비용을 고려한 프로그래밍이 가능해진다. 컴퓨터를 미지의 대상이 아닌 분석의 대상으로 바라볼 수 있다. 컴퓨터 구조의 큰 그림 : 데이터 - 정적인 정보 명령어 - 데이터를 움직이고 컴퓨터를 작동시키는 정보 컴퓨터의 4가지 핵심 부품 : 메모리 CPU 보조기억장치 입출력장치 메모리 : 현재 실행되는 프로그램의 명령어와 데.. 2023. 2. 28.