분류 전체보기(343)
-
자료구조 & 알고리즘 (트리)
트리 방향 그래프의 일종으로 정점을 가리키는 간선이 하나 밖에 없는 구조를 가지고 있다. 트리의 특징 ▶ 루트 정점을 제외한 모든 정점은 반드시 하나의 부모 정점을 가진다. ▶ 정점이 N개인 트리는 반드시 N-1개의 간선을 가진다. ▶ 루트에서 특정 정점으로 가는 경로는 유일하다. 이진트리 이진트리는 각 정점이 최대 2개의 자식을 가지는 트리를 의미한다 이진 트리의 특징 ▶ 정점이 N개인 이진 트리는 최악의 경우 높이가 N이 될수 있다. ▶ 정점이 N개인 포화 또는 이진 트리의 높이는 log N이다. ▶ 높이가 h인 포화 이진 트리는 2h-1개의 정점을 가진다. ▶ 일반적인 이진 트리를 사용하는 경우는 많지 않다. 다음 자료구조에 응용한다 ▶ 이진 탐색 트리 ▶ 힙 ▶ AVL 트리 ▶ 레드 블랙 트리 트..
2023.07.19 -
자료구조 & 알고리즘 (그래프)
그래프 정점과 정점 사이를 연결하는 간선으로 이루어진 비선형 자료구조 정점 집합과 간선 집합으로 표현할 수 있다. 그래프의 특징 ▶정점은 여러 개의 간선을 가질 수 있다. ▶크게 방향 그래프와 무방향 그래프로 나눌 수 있다. ▶간선은 가중치를 가질 수 있다. ▶사이클이 발생할 수 있다. 무방향 그래프 간선으로 이어진 정점끼리는 양방향으로 이동이 가능하다. 표현하기에(A,B)와(B,A)는 같은 간선으로 취급한다. ex) 양방향 통행도로 방향 그래프 간선에 방향성이 존재하는 그래프 양방향으로 갈 수 있더라도 와 는 다른 간선으로 취급한다. ex) 일반통행 연결 그래프 모든 정점이 서로 연결 가능한 상태인 그래프 비연결 그래프 특정 정점쌍 사이에 간선이 존재하지 않는 그래프 ex) 친한 친구 설문 그래프 완전..
2023.07.19 -
코딩테스트 입문 100문제(javascript) 38. 가위 바위 보
가위 바위 보 function solution(rsp) { var answer = ''; let arr= rsp.split(""); for(let i=0;i
2023.07.18 -
코딩테스트 입문 100문제(javascript) 37. 세균 증식
세균 증식 function solution(n, t) { var answer = 0; answer= n*(2**t) return answer; } 문제 설명 어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ n ≤ 10 1 ≤ t ≤ 15 입출력 예 n t result 2 10 2048 7 15 229,376 입출력 예 설명 입출력 예 #1 처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, ..., 10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다. 입출력 예 #2 처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔..
2023.07.18 -
자료구조 & 알고리즘 (해시 테이블 - HashTable)
해시 테이블 해시 테이블은 한정된 배열 공간에 key를 index로 변환하여 값들을 넣게 된다. 키와 값을 받아 키를 해싱(Hashing)하여 나온 index에 값을 저장하는 선형 자료구조 삽입은 0(1)이며 키를 알고 있다면 ,삭제, 탐색도 0(1)로 수행한다. 해시 함수 입력받은 값을 특정 범위 내 숫자로 변경하는 함수 해시 테이블의 문제점 만약 해시 함수의 결과가 동일하게 겹칠 수 있다. Hash Collision 선형 탐사법 충돌이 발생하면 옆으로 한 칸 이동한다. 제곱 탐사법 충돌이 발생하면 충돌이 발생한 횟수의 제곱만큼 옆으로 이동한다. 이중 해싱 충돌이 발생하면 다른 해시 함수를 이용한다. 분리 연결법 버킷의 값을 연결 리스트로 사용하여 충돌이 발생하면 리스트에 값을 추가한다. 해시테이블을 ..
2023.07.18 -
자료구조 & 알고리즘 (큐-Queue)
큐 First In First Out이라는 개념을 가진 선형 자료구조다. Linear Queue와 Circular Queue가 존재한다. Linear Queue (선형 큐) Array로 표현하기 Linear Queue를 Array로 표현할 수 있다. Linked List로 표현하기 Linear Queue를 Linked List로 표현할 수 있다. JavaScript에서 사용법 Array로 구현 Linked List로 구현 Circular Queue (환형 큐) Front와 Rear가 이어져있는 Queue Circular Queue는 Linked List로 구현했을 때 이점이 없다. Array로 구현
2023.07.18