자료구조/알고리즘 - 중복 순열/순열/조합, DP의 알고리즘 예시
2021. 11. 15. 15:29
SE Bootcamp 내용 정리
중복 순열/순열/조합 조합: 순서 상관x 순열: 순서 상관 o 중복순열: 순서도 상관x, 중복도 상관x 먼저 반복문(for문)만으로 만들어서 생각해보자 for문을 이용한 순열/조합 중복 순열 중복 순열: 3개 중 3개를 뽑아서 중복 순열을 만든다면? → for 반복문을 3중으로 쓰면 된다 (3중 for문) // 3개 중 3개를 뽑는 중복순열의 예 let result=[]; const game = ['rock', 'paper', 'scissors']; for(let i=0;i < game.length; i++){ for(let j=0;j < game.length; j++){ for(let k=0; k< game.length; k++){ result.push([game[i], game[j], game[k]]..
자료구조/알고리즘 - 코딩 테스트 1
2021. 11. 11. 19:39
SE Bootcamp 내용 정리
Time Complexity(시간 복잡도) 알고리즘 문제는 해답을 찾는 것도 중요하지만, 그만큼 효율적인 방법으로 해결했는지도 중요하다 → 효율성 = 시간 복잡도 시간 복잡도 알고리즘 문제에서 자주 겪게 되는 문제? → 바로, 시간 복잡도 그 의미는? 입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼마만큼 걸리는가? 효율적인 알고리즘이란, 입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 것 이러한 시간 복잡도는 빅-오 표기법으로 나타낸다 Big-O 표기법 시간 복잡도를 표기하는 방법은 아래의 3가지가 있으나 주로 빅-오 표기법을 사용한다 * Big-O(빅-오): 시간 복잡도를 최악의 경우에 대해 나타내는 방법 * Big-Ω(빅-오메가): 최선의 경우 * Big-θ(빅-세타): 중..
자료구조/알고리즘 - 자료구조 기초(Stack, Queue, Graph, Tree, BST)
2021. 10. 11. 19:57
SE Bootcamp 내용 정리
자료구조 학습 목표 * 자료구조란? * Stack, Queue, Tree, Graph 자료 구조 - 알고리즘 문제에서 Stack, Queue 자료 구조를 배열로 흉내내기 - 각 자료구조의 개념과 구조 파악 - 알고리즘 문제에 맞는 자료구조 적용 * 트리 및 그래프의 탐색 기법 이해 - Binary Search Tree - BFS 와 DFS의 개념과 알고리즘 적용 * 자료 구조를 활용한 알고리즘 문제 접근 자료 구조 소개 자료 구조란? 여러 데이터들의 묶음을 저장하고 사용하는 방법을 정의한 것 → 필요에 따라 데이터의 특징을 잘 파악하여 체계적으로 정리하여 저장해 둬야 한다 → 데이터를 효율적으로 다룰 수 있는 여러 방법들을 모아 “자료 구조” 라 한다 가장 많이 쓰이는 자료 구조 → Stack, Queu..
자료구조/알고리즘 - 재귀
2021. 10. 11. 19:44
SE Bootcamp 내용 정리
학습 내용 * 재귀의 의미, 자바스크립트에서 재귀 호출 * 언제 재귀를 사용해야 하는가 * 재귀적 사고 연습을 통해 재귀함수를 base case와 resursive case로 나눠 작성하기 * Tree 구조에 재귀 함수를 사용해야 하는 이유 이해 - 실생활에 사용되는 유용한 Tree 구조 - 깊이를 알 수 없는 Tree 구조에 재귀 함수를 이용하여 모두 순회하기 재귀의 이해 - 다르게 생각하기 하나의 문제를 해결하기 위해 다양한 방식으로 생각하는 능력을 기르는 것 문제를 쪼개어 생각하는 방법 어떤 문제를 해결할 때, 동일한 구조의 더 작은 문제를 해결함으로써 주어진 문제를 해결하는 방법 → 재귀(recursion) ex) 자연수로 이루어진 리스트(배열)를 입력받고, 리스트의 합을 리턴하는 함수 `arrS..