본문 바로가기

Data Structure & Algorithms47

[arrays and strings] 997.Squares of a Sorted Array https://leetcode.com/problems/squares-of-a-sorted-array/description/ Squares of a Sorted Array - LeetCode Can you solve this real interview question? Squares of a Sorted Array - Given an integer array nums sorted in non-decreasing order, return an array of the squares of each number sorted in non-decreasing order. Example 1: Input: nums = [-4,-1,0,3,10] Out leetcode.com 코드 템플릿: 1. Two pointers: .. 2023. 3. 1.
[Arrays and Strings] 1.Two sum - LeetCode https://leetcode.com/problems/two-sum/description/ Two Sum - LeetCode Can you solve this real interview question? Two Sum - Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target. You may assume that each input would have exactly one solution, and you may not leetcode.com 코드 템플릿 : 1. Two pointers: one input, opposite ends Time com.. 2023. 2. 28.
[Arrays & String] 2회독 큰그림 잡기 - 자주쓰이는 템플릿정리 후우! Leetcode data structure and algorithms 전체 챕터를 속속히는 공부하지는 않았지만 정신줄잡고 한바퀴 돌기 성공!! 이제 어느정도 큰그림이 보이기 시작한다. 결국 이 공부의 목적도 테스트에 있기에 테스트에 맞는 공부를 하면 된다. 잘 나오는 대표 공식이 몇가지가 있으니 릿코드의 code template 의 도움을 받아 정리하고 숙달하는 과정을 가져야지. 이정도 템플릿을 술술 풀어낼 수 있는 기본이 있고 문제를 보며 문제 해결과정을 습득하면 코딩 테스트 준비 끝! 5가지 템플릿 1. Two pointers: one input, opposite ends -> 두가지 포인터를 사용하는 전략이 대표적이며 처음과 끝에 포인터를 달고 계산 int fn(vector& arr) { i.. 2023. 2. 28.
[DS&Algorithm] 각 자료구조간 대표 시간 복잡도 정리 출처: leetcode cheatsheet 코딩 인터뷰를 하며 기초적인 질문은 바로 알고리즘의 시간 복잡도를 분석하는것! 시간 복잡도 종류 시간 복잡도는 크게 O(Big-O), Ω(Omega), Θ(Theta) 라고 불리는 3가지의 표기법이 있으며 Omega 는 최상의 경우로 예를 들면 찾고자하는 숫자가 바로 앞에 놓여있는것이고 Theta는 중간 경우라 생각하면되고 전반적으로 쓰이는 Big-O는 최악의 경우의수로 알고리즘에 최악의 경우의 수를 가정하는 이론이다. => Big-O 를 구한다 생각. 위 도표는 표현법에따른 시간 복잡도를 나타낸것이고 O(1) -> O(log n) -> O(n) -> O(n log n) -> O(n^2) -> O(2^n) -> O(n!) 순으로 시간 복잡도 즉, 계산하는데 시간.. 2023. 2. 26.
[DS&Algorithm] 코테 빌드업 중간점검. 출처: https://www.hanbit.co.kr/media/channel/view.html?cms_code=CMS7793635735 [그래프로 정리] 코딩 테스트에 가장 많이 출제 되는 알고리즘과 합격권 점수를 알아 보겠습니다 코딩 테스트는 ‘기업/기관에서 직원이나 연수생을 선발할 목적으로 시행하는 일종의 문제 풀이 시험’입니다.일반적으로 대기업의 공채와 같이 지원자가 많은 상황에서 효과적으로 지원자를 www.hanbit.co.kr 이제 릿코드로 대충 어떻게 자료구조 &알고리즘 나무줄기가 어떻게 생겨먹은지 알것같다. 이제 나뭇잎을 달아야지. 꾸준히가 답이다. 내가 공부하는 코테의 목적은 최소한의 바운더리를 통과하는것. 로봇 지식이 우선시되어야한다. 16~19년도 문제 비중을 표시한걸로 그리디,BFS/.. 2023. 2. 25.
[DP] Dynamic programming 맛보기 이제 dynamic programming 챕터를 끝으로 LEETCODE에서 제공하는 모든 챕터를 둘러본것이된다. 아직 세부적으로 문제를 구현해 내는것은 연습이 부족하여 풀진 못하겠지만 전체적인 뿌리와 방향을 알 수 있게 된것같다. 이제 그 속을 세부적으로 단단히 다져나가야겠다. 오.. 다이나믹 프로그래밍은 문제 해결 테크닉의 한종류로 인터뷰에서 잘나오지않지만 만약 나오면 인터뷰어에게 가장 공포스러운? 문항이라고한다. 근데 알기만하면 겁먹을 필요가 없다고함 :(.. what is DP? 짧게 설명하면 다이나믹 프로그래밍은 단지 최적화된 회귀 문제라고한다. recursive function 에서 argument 로 들어가는것이 State 라 불리며 예를 들어 DFS 문제에서는 방문했던곳을 다시 가지않도록 S.. 2023. 2. 25.
[Backtracking] Backtracking 맛보기 짬짬히 글을 써야하니 바로시작! 백트래킹은 최적화(optimazation) 혹은 브루트 포스(exhaustive search) 종류의 알고리즘으로 모든 경우의 수는 찾아가는 방법을 말한다. 허나 백트래킹의 시간복잡도는 지수승으로 증가하여 별다른 방법이 없을때 최후로 고려해야한다. 릿코드에서 말하길 백트랙킹을 사용할때는 인풋의 개수가 보통 알고리즘은 많은 문제를 풀어봐서 패턴을 학습할 수 밖에~ ... 예제학습 46. Permutations (https://leetcode.com/problems/permutations/) ==> 퍼뮤테이션? 순열 즉, 팩토리얼 이라고생각하면됨 다른 순서로 줄세울 수 있는 경우의 수 Companies Given an array nums of distinct integers,.. 2023. 2. 24.
[Binary Search] Binar Search 개념 오늘은 또다른 개념을 도전 -> 머리가 맑을때 도전하기. Binary search(BS) 는 검색 알고리즘으로 최악의 상황에서 O(log n) 의 시간 복잡도를 가진다. 여기서 n 은 검색 범위의 사이즈를 지칭한다. 검색을 위해서는 보통 sort가 되어있어야한다고 한다. Binary search의 활용은 tree ( binary search tree) 에서도 할 수 있고 array에서도 할수있는데 지금은 array에 관해서 다뤄본다. 가정으로 이미 순서대로 정리된 array가 있으면 O(log n)의 시간복잡도와 O(1)의 공간을 가진다. 이때 BS 는 어레이안에서 X 요소의 인덱스를 찾을 수 있고 첫번쨰와 마지막 인덱스를 찾을 수 있다. 릿코드 페이지에서는 구현과정을 말로 하는데 그림으로 한방으로 보는.. 2023. 2. 23.