HashTable (해시테이블)
1. 해시 테이블 (Hash Table) 키 (key), 값 (Value)을 대응시켜 저장하는 데이터 구조 키를 통해 해당 데이터에 빠르게 접근 가능 해싱 키를 특정 계산식에 넣어 나온 결과를 사용하여 값에 접근하는 과정 2. 해시 테이블 구조 키 : 해시 테이블...
1. 해시 테이블 (Hash Table) 키 (key), 값 (Value)을 대응시켜 저장하는 데이터 구조 키를 통해 해당 데이터에 빠르게 접근 가능 해싱 키를 특정 계산식에 넣어 나온 결과를 사용하여 값에 접근하는 과정 2. 해시 테이블 구조 키 : 해시 테이블...
1. 프론트엔드와 백엔드의 차이 0) 개요 웹 개발 역할에는 우리가 보고있는 화면과 같이 눈에 보이는 영역에 대한 업무를 진행하는 역할이 있고, 눈에 보이지 않는 뒷단을 개발하는 역할 이 존재한다. 눈에 보이는 영역에 대한 개발을 주로 프론트엔드 개발을 진행한다고 이야기한다. 반면, 눈에 보이지 않는 뒷단을 개발하는 행위는 백엔드 개발을...
1. 연결 리스트 (Linked List) 데이터를 링크로 연결해서 관리하는 자료구조 자료의 순서는 정해져 있지만, 메모리상 연속성이 보장되지는 않음 2. 연결 리스트의 장점 데이터 공간을 미리 할당할 필요 없음 즉, 리스트의 길이가 가변적이라 데이터 추가/삭제 용이 3. 연결 리스트의 단점 연결구조를 위한 별도 데...
문제 출처 : https://www.acmicpc.net/problem/26008 정답 참고 : https://nukoori.tistory.com/40 1. 문제 그린닷컴의 운영자 연두는 비밀번호를 평문 그대로 저장하는 과오를 뒤로하고, 이제부터 암호에 해시 함수를 적용해 저장하려고 한다. 연두가 아는 해시 함수라고는 알고리즘 문제 풀이에 많이 사...
1. 투 포인터 (Two Pointers) 배열에서 두 개의 포인터를 사용하여 원하는 결과를 얻는 방법 두 개 포인터의 배치 방법 같은 방향에서 시작 : 첫 번째 원소에 둘 다 배치 서로 다른 방향에서 시작 : 첫 번째 원소와 마지막 원소에 배치 다중 for문의 복잡도를 좀 더 선형적으로 풀 ...
1. 이진 탐색 정렬된 상태의 데이터에서 특정 값을 빠르게 탐색하는 방법 찾고자 하는 값과 데이터 중앙에 있는 값을 비교 찾고자 하는 값이 더 작으면 데이터 왼쪽 부분에서 이진 탐색 찾고하 하는 값이 더 크면 데이터 오른쪽 부분에서 이진 탐색 알고리즘 시간 복잡도 : O(logN) ...
1. 기수 정렬 (Radix Sort) 낮은 자리 수 부터 정렬하는 방식 각 원소 간의 비교 연산을 하지 않아 빠른 대신, 기수 테이브을 위한 메모리 필요 알고리즘 복도 : O(dn) (d: 최대 자릿수) 1) 1의 자리 숫자 기준으로 먼저 정렬 2) 10의 자리 숫자 기준으로 정렬 // 알고리즘 - 정렬_3 // 기수...
1. 합병 정렬 (Merge Sort) 배열을 계속 분할해서 길이가 1이 되도록 만들고, 인접한 부분끼리 정렬하면서 합병하는 방식 알고리즘 복잡도 : O(NlogN) // 알고리즘 - 정렬_2 // 합병 정렬 import java.util.Arrays; public class Main { public static ...
1. 정렬 특정 값을 기준으로 데이터를 순서대로 배치하는 방법 구현 난이도는 쉽지만, 속도는 느린 알고리즘 버블 정렬, 삽입 정렬, 선택 정렬 구현 난이도는 조금 더 여럽지만, 속도는 빠른 알고리즘 합병 정렬, 힙 정렬, 트리 정렬 하이브리드 정렬 ...
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12906 1. 문제 문제 설명 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수...