자료구조란?
19번 문제 'ab' => 'aa,ab,ba,bb'a-a b-a \-b -b첫번째 for문 a,b 2바퀴 돌두번째 for문도 동일하게 2바퀴 도는게반복적인 내용그래서 이걸 코드화 시키면result = result + stri+strj위의 코드를 반복적으로 돌아갑니다.
배열(array) 어떤 자료의 값들을 모아놓은 자료구조. 각각의 자료들, 우리가 여러개의 자료를 모아서 array로 생성해 놓으면 각각의 인덱스로 접근할 수 있는 자료구조. 프로그래밍 언어마다 인덱스의 시작번호가 0인 곳도 있고, 1인 곳도 있음.
선형자료구조의 하나로, LIFO(Last In First Out)
선형자료구조이며, FIFO(First In First Out)
Linked List 정의 및 구현
linear search, binary search
힙이란? O(1) 시간에 가장 높은 항목이나 가장 낮은 항목을 반환하는 중요한 자료구조. 힙은 트리와 비슷한 자료 구조의 일종 최대 힙의 경우 부모가 자식보다 크고, 최소 힙의 경우 부모가 자식보다 작음 다른 자료 구조와 달리 자식에 대한 포인터를 갖는 대신에 배열을
노드들의 집합체이며 계층적인 관계를 나타내는 자료구조첫번째 노드 루트라고 부르는 뿌리노드가 존재루트노드는 다양한 개수의 자녀들을 가질 수 있음반대로 루트 노드를 제외한 각각의 노드는 정확하게 하나의 노드를부모노드로 가지게 됨.실제 나무는 뿌리가 아래에 있고 잎이 위에
전위 순회(preorder traverse) : 뿌리(root)를 먼저 방문중위 순회(inorder traverse) : 왼쪽 하위 트리를 방문 후 뿌리(root)를 방문후위 순회(postorder traverse) : 하위 트리 모두 방문 후 뿌리(root)를 방문층
어떤 데이터 사이의 인접한 정보를 저장하는 자료구조object와 relationship이 존재object는 어떤 사람 혹은 어떤 도시가 될 수 있으며이러한 object를 노드라고 부르는 graph가 존재그리고 이들 사이의 relationship을 graph에 저장함
// directed graph (방향 그래프)// unweighted (비가중치)// adjacency matrix (인접 행렬)// 이해를 돕기 위해 기존 배열의 인덱스를 정점으로 사용합니다 (0, 1, 2, ... --> 정점)
adjacency list를 사용하는 경우: 모든 경로를 구할 때!
그래프의 순회와 DFS&BFS
그래프의 최단경로 알고리즘(다익스트라 알고리즘 편)
플로이드 와샬
프래그래머스 순위 문제
노마드코더님의 BIgO 표현볍
거품정렬 가장 간단한 알고리즘 전체 배열을 순회하면서 항복이 다른 항복보다 큰 경우, 두 항목을 교환 시간복잡도 O(n^2), 공간복잡도 O(1) 단점 최악의 종류의 정렬 다른 정렬 알고리즘은 배열의 이미 정렬된 부분을 활용하는데 비해 거품 정렬은 모든 가능한
삽입정렬과 구현
선택정렬 정의, 복잡도, 수도코드, 코드 구현
기준점을 획득한 다음 해당 기준점을 기준으로 배열을 나눔한쪽에는 기준점보다 큰 항목들이 위치하고 다른 쪽에는 기준점보다 작은 항목들이 위치함.이런 식으로 모든 항목이 정렬될 때까지 이 과정을 반복함가장 이상적인 기준점은 배열의 중간값.중간 값이 배열을 균등하게 나눌 수
정렬되지 않는 목록에서 k번째로 작은 항목을 찾는 선택 알고리즘빠른 정렬 알고리즘과 같은 접근법을 사용기준점을 선택한 다음 배열을 분할, 하지만 빠른 정렬처럼 기준점의 양쪽 모두를 재귀적으로 수행하는 대신 한쪽만을 재귀적으로 수행복잡도 O(Nlog2(N)) -> O(N
Merge Sort
값들 교환하지 않고 자료를 정렬
mostFrequentCharacter
함수의 점근적 분석법
세타/빅오/빅오메가 노테이션
완전탐색의 종류
불리언 값으로 이루어진 집합에 대해서 굉장히 빠르게 연산하는 기법.완전탐색의 속도를 빠르게 하기 위해 쓰이기도 함.DP의 한 인자로 사용되기도 함예를 들어 TSP의 경우 지금까지 어떤 곳을 방문했는가에 대한 집합으로 쓰임.예제DP(동적계획법)TSP(Traveling S
DP사용 시 지나치게 많은 일을 한다는 것에서 착안하여 고안된 알고리즘DP를 대체하는 것은 아니고 같이 쓰이며 서로 보완하는 개념.탐욕 알고리즘 또는 욕심쟁이 알고리즘이라고도 부름.미래를 생각하지 않고 각 단계에서 가장 최선의 선택을 하는 기법.이렇게 각 단계에서 최선
어떤 숫자에서 k개의 수를 제거 햇을 때 얻을 수 있는 가장 큰 숫자를 구하려 합니다.예를 들어, 숫자 1924에서 수 2개를 제거하면 19,1,2,14,92,94,24를 만들 수 있습니다. 이중 가장 큰 숫자는 94입니다.문자열 형식으로 숫자 number와 제거할 수
124 나라가 있습니다. 124나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.124 나라에는 자연수만 존재124 나라에는 모든 수를 표현할 때 1,2,4만 사용.예를 들어 124나라에서 사용하는 숫자는 다음과 같이 변환됩니다.10진법: 1,
작업의 개수(progresses, speeds)의 배열의 길이는 100개이하작업진도는 100미만의 자연수작업속도는 100이하의 자연수배포는 하루에 한번만 할 수 있으며, 하루의 끝에 이루어진다고 가정합니다. 예를 들어 진도율이 95%인 작업의 개발 속도가 하루에 4%라
세로와 가로의 길이가 각각 R, M인 2차원 R X M 배열 grid가 주어졌을 때, '1'은 땅을 의미하고 '0' 은 물을 의미합니다. 주어진 2차원 배열에 존재하는 섬의 개수를 리턴해야 합니다.grid세로와 가로의 길이가 각각 R, M인 2차원 배열arr.lengt
코드 풀이
프로그래머스 77484
수정중(sameValueZero 알고리즘 공부중)