Algorithm

Algorithm

개발자가 알고리즘을 공부해야하는 이유

1. 개발자는 왜 알고리즘을 공부해야 할까? 왜 개발자는 알고리즘을 공부해야 할까요? 요즘 대다수의 신입 개발자분들은 취업을 위해서 알고리즘 문제를 풀고 있습니다. 코딩 테스트가 채용 프로세스의 한 부분이기 때문이죠. 굉장한 실력을 갖추신 시니어 개발자분들은 입을 모아 알고리즘 공부가 중요하다고 강조하고 있습니다. 하지만, 저와 같은 개발자 지망생들에게 크게 와닿기는 힘듭니다. 왜냐하면 신입 개발자 & 개발자 지망생들이 실무에서의 알고리즘을 통한 성능 최적화, 코드 리펙토링을 경험하기는 쉽지 않으니까요. 또한, 요즘 대부분의 언어 및 프레임워크에는 개발자가 사용하기 편한 알고리즘 메소드들이 많이 구현되어 있습니다. 때문에 Linked List, Stack, Sort와 같은 기본적인 자료구조와 알고리즘은 ..

Algorithm

[C++] 백준(BOJ) 2240 - 자두나무

- 문제 https://www.acmicpc.net/problem/2240 2240번: 자두나무 자두는 자두를 좋아한다. 그래서 집에 자두나무를 심어두고, 여기서 열리는 자두를 먹고는 한다. 하지만 자두는 키가 작아서 자두를 따먹지는 못하고, 자두가 떨어질 때까지 기다린 다음에 떨어 www.acmicpc.net - 문제 풀이 T(시간) : 1 ~ 1,000 w(이동 가능 횟수) : 1 ~ 30 어떠한 특정 상황에서 자두를 줍기 위해 행동할 수 있는 경우를 모두 생각해보자. 현재 위치에 자두가 떨어지는 경우 자리를 바꿔 자두를 줍지 않는다. 자리를 바꾸지 않고 자두를 줍는다. 현재 위치가 아닌 곳에 자두가 떨어지는 경우 자리를 바꿔 자두를 줍는다. 자리를 바꾸지 않고 자두를 줍는다. 총 4가지의 경우의 수..

Algorithm

[C++] 백준(BOJ) 2493 - 탑

- 문제 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net - 문제 풀이 N(탑의 개수) : 1 ~ 500,000 탑의 높이 : 1 ~ 100,000,000 탑의 개수가 최대 50만이기 때문에 O(n2)으로 풀면 TLE가 발생한다. O(nlogn) 이하의 시간 복잡도로 풀어야 한다. 그럼 어떤 알고리즘을 써야 할까? 위 그림처럼 각각의 탑은 왼쪽 방향으로 레이저를 발사한다. 따라서 송신탑보다 더 높은 탑들 중 가장 가까운 탑이 수신한다. 이를 ..

Algorithm

[C++] 백준(BOJ) 1005 - ACM Craft

- 문제 https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net - 문제 분석 1) N(건물 개수) : 2 ~ 1000 2) K(규칙 개수) : 1 ~ 100,000 3) 1 ≤ X, Y, W ≤ N 4) Di (i번째 건물의 건설 시간) : 0 ~ 100,000 각 건물을 지으려면 해당 건물을 짓기 위한 모든 선행 건물을 지어야 한다. (수강신청 커리큘럼과 비슷함) 이러한 구조의 순서를 찾기 위해서는 위상정렬(Topological Sorting..

윤유후
'Algorithm' 카테고리의 글 목록