본문 바로가기

Problem Solving/SW Expert Academy10

Ad hoc algorithms Course - Programming - Professional - Ad Hoc Algorithms SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com Anagram 찾기 - n개의 단어가 주어져 있을 때 anagram 쌍 개수를 구하라. - 1. counting sort를 이용하여 각 단어의 알파벳들을 정렬. - 2. radix sort를 이용하여 단어들을 정렬. - 3. 순회하며 같은 단어들의 갯수를 세어 쌍의 개수를 더해줌. 정렬된 두 배열에서 합 찾기 - 크기 n인 정렬된 배열 A, B와 목표 값 X이 주어졌을 때, 두 배열에서 각각 하나의 원소를 골라 X를 만들 수 있는가. - 통용되는 명칭인지는 모르겠으.. 2022. 3. 10.
'22 삼성전자 동계 대학생 S/W 알고리즘 특강 후기 '22년 2월 28일자로 알고리즘 특강이 종료되었다. 사실 특강 자체는 대부분 혼자 공부하는 식이었다. 혼자 자료를 찾아보고 읽어보며 공부하는 것을 좋아해서 진행 방법은 마음에 들었다. 알고리즘과 자료구조를 어느 정도 이해하고 있는 사람들에게 잘 맞았겠다는 생각이 들었다. 코딩을 쉬었다 다시 시작한 입장으로 개념을 복습하고 문제를 풀며 감각을 일깨우는 과정이 너무 좋았다. 문제를 이해하고 코드 구조를 어떻게 짤 것인지 생각하며 머리가 깨질 때도 있었지만 구현에 집중되어있는 문제들을 풀면서 구현 능력을 기를 수 있었다. memory pool 같은 방법과 hash, linked list 등을 오랜만에 직접 구현해보며 모호하게만 기억하고 있던 지식들이 설명할 수 있을 정도로 확실해졌다. 마지막 남은 검정 시험.. 2022. 3. 2.
Graph Depth-First Search (DFS) Backtracking 전에 가능한한 시작점으로부터 깊은 노드들을 먼저 탐색한다. 보통 재귀나 stack을 사용하여 구현. Breadth-First Search (BFS) 시작점으로부터 같은 깊이의 노드들을 먼저 탐색한 후 더 깊은 노드들을 탐색한다. queue를 사용하여 구현. Lowest Common Ancestor (LCA) 트리 구조에서 height가 가장 낮은 공통 ancestor을 LCA라 부른다. Euler tour를 순회하는 방법 - sqrt decomposition (O(n) for preprocessing, O(n^(1/2)) for query) - segment tree (O(n) for preprocessing, O(log n) for q.. 2022. 1. 25.
Merge / Quick Sort & Binary Search Merge sort Sorting 방법 중 하나. 배열을 반으로 쪼개어(divide), 더 이상 나눌 수 없을 때 다시 합치면서(conquer) 배열을 정렬한다. Complexity: O(n log n) 으로 안정적이다. Quick sort Sorting 방법 중 하나. 하나의 pivot을 잡아 왼쪽에 pivot보다 작은 수들을, 오른쪽에 pivot보다 큰 수들을 놓은 다음, 좌, 우로 나누어 다시 pivot을 잡고 위의 과정을 진행한다. Complexity: O(n log n), O(n^2) (worst case) Binary search 정렬되어 있는 배열에서 원하는 원소를 O(log n)만에 찾는 방법. int binary_search(int num[], int from, int to, int ta.. 2022. 1. 23.