728x90 반응형 알고리즘12 알고리즘 학습 방법 알고리즘 오픈톡방에 있다 보면 여러 가지 알고리즘 학습 관련 질문들이 들어옵니다. 이에 대한 답변들을 정리해서 블로그 링크를 드리게 위해 작성해 봤습니다. 1. 백엔드 개발자인데 JAVA로 알고리즘을 학습해야 할까요? 언어는 그저 도구이며, 가장 자신 있는 언어로 알고리즘 학습을 하는 게 맞습니다. 그러나, 특정 회사들은 직군별 코딩테스트 언어를 제한하고 있습니다. 이러한 회사들을 위해서라면, JAVA로 준비하는 게 좋으나 한 가지 언어를 잘 다룰 수 있다면, 다른 언어로 알고리즘 준비를 하는 데는 얼마 걸리지 않다고 생각이 들기 때문에 자유롭게 선택하셔서 하시면 될 거 같습니다. 2. 알고리즘 학습은 어떻게 하는 게 좋을까요? 학습 방식은 사람마다 다릅니다. 저는 특정 알고리즘으로 풀리는 문제의 소스를.. 2023. 3. 6. 비트연산 과연 더 빠른가? 비트연산이란? "한 개 혹은 두 개의 이진수에 대해 비트 단위로 적용되는 연산이다." - 위키백과- 비트연산을 사용하는 이유? 컴퓨터가 자료형(int, long double 등등)을 비트로 변환하는 작업을 사용자가 미리 해주기 때문에 빠름 대표적으로 > = /이 있음 정말로 비트연산이 기본 연산보다 빠른가? 여러 언어들마다 실행시간을 측정할 수 있습니다. java 곱하기 + 나누기 long beforeTime = System.currentTimeMillis(); long n = 1, m = 1; for(int i = 0; i < 1000000; i++) { for(int j = 0; j < 5000; j++) { n *= 2; m *= 2; n /= 2; m /= 2; } } long afterTime .. 2023. 2. 28. Dijkstra - 데이크스트라(다익스트라) 데이크스트라(Dijkstra)는 BFS 알고리즘을 알고 있다면 조금 더 쉽게 이해할 수 있다. 시작 지점 부터 가고자하는 도착지점까지 최소한의 시간으로 도착할 수 있는 거리를 구하는 알고리즘이다. ex)https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 예제 입력은 1번에서 출발하여 5번까지 도착하는데 걸리는 최소 시간을 구하는 문제입니다. 1 -> 4 -> 5을 이동하게 된다면 1 + 3 = 4의 시간이 걸리게 .. 2023. 1. 22. BFS - 너비 우선 탐색 / DFS - 깊이 우선 탐색 너비 우선 탐색(Breadth First Search) / DFS(Depth First Search)은 시작지점부터 갈 수 있는 지점들을 들리면서, 더이상 갈 곳이 없을때까지 반복한 후 종료한다. ex) https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 해당 문제는 이런 모양의 간선과 노드들로 이루어져 있습니다. 1번 컴퓨터에 바이러스가 걸리게 된다면, 1과 2, 3, 5, 6 총 4개의 컴퓨터가 1번 컴퓨터에 의해 바이러스에 감염되면서, 5개의 컴퓨.. 2023. 1. 22. 이전 1 2 3 다음 728x90 반응형