알고리즘
-
[알고리즘] 백준 16930번 문제 (DFS, BFS)알고리즘 2021. 3. 28. 15:20
www.acmicpc.net/problem/16930 16930번: 달리기 진영이는 다이어트를 위해 N×M 크기의 체육관을 달리려고 한다. 체육관은 1×1 크기의 칸으로 나누어져 있고, 칸은 빈 칸 또는 벽이다. x행 y열에 있는 칸은 (x, y)로 나타낸다. 매 초마다 진영이는 www.acmicpc.net 문제를 읽어보면, 시작점에서 도착점으로 이동하는 최소 시간을 구하라고한다. 이 문제를 읽자 마자 '아하 이건 시작점, 도착점, 최소 시간이라는 키워드를 사용하는걸로 봤을때 너비 우선 탐색(BFS) 문제구나!' 하고 알 수 있어야한다. 이제 이건 알겠고, 그럼 이제 너비 우선 탐색으로 어떻게 코딩을 할 수 있을까를 생각해본다. 깊이 우선 탐색 (DFS) - 루트 노드(혹은 다른 임의의 노드)에서 시작해..
-
[알고리즘] Greedy Algorithms 그리디 알고리즘 개념 이해하기알고리즘 2020. 10. 30. 17:21
1 | Greedy 알고리즘의 개념 그리디 알고리즘 (Greedy Algorithms) 은 한국어로 탐욕법, 탐욕 알고리즘라고 부른다. 그리디 알고리즘은 문제를 해결하는 과정에서 순간 순간 최적이라고 생각되는 방법을 찾으면서 결국 최종의 문제 해결로 도달하는것을 말한다. 2 | Greedy 알고리즘의 장점 빠른 계산속도! 그래서 Greedy의 방법이 통하는 문제에서는 최적해를 빠르게 구할 수 있다. 또한 일을 너무 많이해서 문제인 다이나믹 프로그래밍(Dynamic Programming) 과 서로 보완하는 개념으로 알려져 있다. 3 | Greedy 알고리즘이 통하는 문제 유형 1. 활동 선택 문제 (Activity Selection Problem) 시작시간, 종료시간이 주어지고 최대한 많은 작업을 소화할 ..
-
[JAVA] 삼항연산자 (ternary operator) 예제BACK-END/JAVA 2020. 10. 14. 15:17
삼항 연산자는 자바에서 유일하게 피연산자를 세개 가지는 조건 연산자입니다. | 삼항 연산자의 문법 조건식 ? 반환값1 : 반환값2 | 예제 정수 배열을 입력받아서 합친후 가장 큰 수를 구하는 알고리즘 public static void main(String[] args) { int[] numbers= {6,10,2}; // 정수배열 sort_solution1 sol = new sort_solution1(); } public String solution(int[] numbers) { String [] temp = new String[numbers.length]; for(int i=0; i