자바173 [Java] BOJ 14500번 테트로미노 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 풀이 재귀 함수를 사용해서 4칸을 이동했을 때의 숫자의 합들 중에 큰 값을 경신하도록 하고 'ㅜ' 모양은 재귀 함수로는 만들 수 없어서 직접 하드 코딩하여 해결할 수 있었습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public.. 2021. 5. 13. [Java] BOJ 15686번 치킨 배달 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 풀이 조합을 사용하여 해결했습니다. 처음에 순열로 접근했다가 시간 초과가 나서 헤매었었던 문제입니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public clas.. 2021. 5. 12. [Java] 위상정렬 위상 정렬은 특정 수강과목에서 선수과목이 있을 경우 어떤 순서로 들어야 하는지 순서를 쉽게 찾아낼 수 있는 알고리즘입니다. 이때, 위상 정렬을 위해서는 그래프는 방향이 있어야 하고 사이클이 없는 DAG(Directed Acyclic Graph) 여야만 합니다. 위상 정렬 방법(Queue 사용) 1. 진입 차수 즉, 특정 노드로 들어오는 간선의 개수를 알아내기 위해 in 배열의 크기를 정점의 개수만큼 만듭니다. 2. 특정 노드로 들어오는 간선이 있을 때마다 in 배열의 크기를 +1 해줍니다. ex) 예를 들어, 위 이미지와 같은 DAG가 있다면 진입 차수는 1 2 3 4 진입 차수 0 1 0 3 와 같이 됩니다. 3. 큐를 만들고 진입 차수가 0인 노드를 전부 큐에 삽입합니다. 4. 큐에 아무것도 남지 않.. 2021. 5. 11. [Java] BOJ 1759번 암호 만들기 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 풀이 조합을 통해 문제에서 요구하는 길이만큼의 암호가 만들어졌다면 문제에서 주어진 조건에 부합하는지 판별하고 정답에 추가함으로써 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public s.. 2021. 5. 11. [Java] Dijkstra 알고리즘 Dijkstra 알고리즘은 가중치와 방향이 있는 그래프에서 출발지에서 도착지까지의 최단거리를 구할 수 있는 알고리즘입니다. 이때, 주의할점은 음수인 가중치가 존재하면 안됩니다. MST를 구하는 Prim 알고리즘과 매우 비슷한 과정으로 진행됩니다. 때문에, Dijkstra 알고리즘을 학습하면 Prim 알고리즘을 학습하실때 큰 도움이 됩니다! [Java] Prim 알고리즘 Kruskal과 같이 MST를 찾는 알고리즘입니다. Prim을 잘 익혀두시면 최단거리를 구하는 Dijkstra 알고리즘을 학습하실때 큰 도움이 됩니다! [Java] Kruskal 알고리즘 MST를 찾는 알고리즘입니다. (설명을 잘 comgong-man.tistory.com (설명을 잘 못해서 코드를 보시는 게 빠를 수 있습니다.... ㅠ).. 2021. 5. 10. [Java] Prim 알고리즘 Kruskal과 같이 MST를 찾는 알고리즘입니다. [Java] Kruskal 알고리즘 MST를 찾는 알고리즘입니다. (설명을 잘 못해서 코드를 보시는 게 빠를 수 있습니다.... ㅠ) 1. 간선의 정보가 E개가 들어온다면 E개의 시작점, 도착점, 가중치를 저장할 수 있는 Edge 객체 배열을 만 comgong-man.tistory.com Prim을 잘 익혀두시면 최단거리를 구하는 Dijkstra 알고리즘을 학습하실 때 큰 도움이 됩니다! [Java] Dijkstra 알고리즘 Dijkstra 알고리즘은 가중치와 방향이 있는 그래프에서 출발지에서 도착지까지의 최단거리를 구할 수 있는 알고리즘입니다. 이때, 주의할점은 음수인 가중치가 존재하면 안됩니다. MST를 구하는 Pr comgong-man.tistor.. 2021. 5. 10. 이전 1 ··· 14 15 16 17 18 19 20 ··· 29 다음