정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다.버블 정렬(bubble sort)은 여러 정렬 알고리즘(삽입 정렬, 퀵 정렬, 병합 정렬, 기수 정렬 등) 중 가장 기본적인 알고리즘입니다.버블 정렬 알고리즘은 아래와 같습니다.첫 번째 요소가 두
수학에서 에라토스테네스의 체는 소수를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견하였다.2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 그림에서 회색 사각형으로 두른 수들이 여기에 해당한다.2는 소수이므로 오른쪽에 2를 쓴다. (빨간색)자기 자신을
두 개의 배열(base, sample)을 입력받아 sample이 base의 부분집합인지 여부를 리턴해야 합니다.function isSub를 만든후, 인자로 1.부분집합 요소, 2.확인대상 배열, for문 3.시작 값을 전달한다. for문을 돌려, 전달받은 inital
세로 길이 2, 가로 길이 n인 2 x n 보드가 있습니다. 2 x 1 크기의 타일을 가지고 이 보드를 채우는 모든 경우의 수를 리턴해야 합니다.dp 를 생각했으니 DFS와 헷갈렸다하지만 배열에 담아서 이전값과 그 이전 값을 더하는 것임을 알았다.이 문제는 경우의 수
N이 1일때, 2일때, 3일때, 4일때 경우를 찾는다.N \* 21 \* 2 = 1 |2 \* 2 = 3 || ,〓 ,ㅁ -> 조합3 \* 2 = 5 |||, |〓 , |ㅁ,〓|, ㅁ| (|)||, (|)〓 , (|)ㅁ, (〓)|, (ㅁ)|4 \* 2 =
선수지식으로 트리, 그래프를 배웠다. : 노드로 이루어진 자료 구조트리의 특징: 순회는 Pre-order, In-order 아니면 Post-order로 이루어진다. 이 3가지 모두 DFS/BFS 안에 있다.: 단순히 노드(N, node)와 그 노드를 연결하는 간선(E,
자료구조 수많은 선배 개발자들은 무수한 상황에 데이터를 효율적으로 다룰 수 있는 여러 방법을 연구해 두었다. 그리고 선배 개발자들은 아래의 그림과 같이 수많은 데이터들을 분류해두었다. 무수한 상황에서 데이터를 효율적으로 다룰 수 있는 방법을 모두 모아, 자료구조라는
어떤 문제를 해결할 때 정렬 여부가 큰 영향을 미치는 경우가 있다.정렬이 되어 있으면 훨씬 간단하고 효율적으로 풀 수 있게 되는 것이다.예를 들면 아래와 같은 경우 매우 유용하다.분포도의 중위값을 알아내고자 할 때데이터에서 중복값을 잡아내고 싶을 때이진 탐색을 할 때단
하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있습니다. 게임의 목적은 다음 두 가지 조건을 만족시키면
Tree & Graph Tree 자료구조 Tree는 이름 그대로 나무의 형태를 가지고 있습니다. 정확히는 나무를 거꾸로 뒤집어 놓은 듯한 모습을 가지고 있습니다. 그래프의 여러 구조 중 단방향 그래프의 한 구조로, 하나의 뿌리로부터 가지가 사방으로 뻗은 형태가 나무와
그래프는 여러개의 점들이 서로 복잡하게 연결되어 있는 관계를 표현한 자료구조그림 통상적인 의미의 그래프X축과 Y축이 존재하고, X축의 값에 따라 Y축의 값을 나타내는 그래프, 또는 수학 수업이나 발표에서 사용되는 자료로 자주 접한 이 그래프를 말이다.그러나 컴퓨터 공학
그래프의 탐색은 하나의 정점에서 시작하여 그래프의 모든 정점들을 한 번씩 방문(탐색)하는 것이 목적이다. 그래프의 데이터는 배열처럼 정렬이 되어 있지 않다. 그래서 원하는 자료를 찾으려면, 하나씩 모두 방문하여 찾아야 한다.가장 대표적인 두 가지 방법, BFS와 DFS
트리는 노드로 이루어진 데이터 구조이다.노드들 사이에 부모와 자식 관계를 가진 가지가 있다.한가지 에서 여러개의 노드 0~n개의 노드를 가질 수 있다. 각 노드는 한개 이상의 다른 노드를 가질 수 있다는 점에서 연결리스트와는 차이가 있다.선형 구조(linked-list
https://www.acmicpc.net/problem/2161https://www.acmicpc.net/problem/2164https://www.acmicpc.net/problem/1158
https://ratsgo.github.io/data%20structure&algorithm/2017/10/25/hash/ https://code-lab1.tistory.com/14 https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%
(DP, 동적 계획법)은 탐욕 알고리즘(Greedy)과 함께 언급하는 알고리즘으로, 줄임말로 DP 라고 하는 이 알고리즘은, 탐욕 알고리즘과 같이 작은 문제에서 출발한다는 점은 같다. 그러나, 탐욕 알고리즘이 매 순간 최적의 선택을 찾는 방식이라면, DP는 모든 경우의
Brute Force Algorithm은 무차별 대입 방법을 나타내는 알고리즘이다. 순수한 컴퓨팅 성능에 의존하여 모든 가능성을 시도하여 문제를 해결하는 방법이다. Brute Force는 최적의 솔루션이 아니라는 것을 의미하기도 한다. 공간복잡도와 시간복잡도의 요소를
순열(順列, permutation)은 서로 다른 n개의 원소를 가지는 어떤 집합에서 중복 없이 순서에 상관있게 r개의 원소를 선택하거나 혹은 나열하는 것이며, 이는 조합과 마찬가지로 n개의 원소로 이루어진 집합에서 r개의 원소로 이루어진 부분집합을 만드는 것과 같다.위
최대공약수(Greatest Common Divisor, GCD)는 두 수 이상의 여러 공약수 중 최대인 수를 가리킨다.공약수(Common Divisor): 최대공약수의 개념 중 공약수는 두 수 이상의 여러 수 중 공통된 약수를 의미한다. 약수(Divisor): 어떤 수
집합 {1, 2, 3}의 모든 부분집합은 {}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3} 으로 나열할 수 있고, 이 부분집합의 총 개수는 8개이다. 그리고 이 모든 부분집합을 통틀어 멱집합이라고 한다. 이렇게 어떤 집합이