본문 바로가기

분류 전체보기233

[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.
[Java] BOJ 14503번 로봇 청소기 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 풀이 문제에서 주어진 조건대로 재귀함수를 작성하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int answer; public static int N, M; public static int r, c, .. 2021. 5. 10.
[Python] 프로그래머스 보석 쇼핑 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 풀이 투포인터를 사용하여 문제에서 주어진 조건대로 처리하여 해결했습니다. 코드 def solution(gems): answer = [] unique_gem = set(gems) select_gem = dict() left = 0 right = 0 select_gem[gems[0]] = 1 minLen = 987654321 while left < len(gems) and right < len(gems): curLen = 0 if len(select_gem) == len(unique_gem): curLen = ri.. 2021. 5. 10.
[Java] SWEA 5644번 무선충전 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Solution { public static class BC implements Comparable { int x, y; int c; int p; public BC(int x, int y, int c, int p) { super(); this.x = x; .. 2021. 5. 8.
[Java] BOJ 11722번 가장 긴 감소하는 부분 수열 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net 풀이 LIS(최장 증가 수열)을 응용하여 해결했습니다. LIS(최장 증가 수열)과는 반대로 현재 숫자(i)보다 앞의 숫자들이(j) 작을 경우 해당 숫자가 있는 memo[j] + 1이 현재 숫자가 있는 memo[i] 보다 크다면 값을 경신하게 했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.I.. 2021. 5. 7.
[Java] BOJ 11055번 가장 큰 증가 부분 수열 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net 풀이 LIS(최장 증가 수열)을 응용하여 해결했습니다. LIS(최장 증가 수열)처럼 증가하는 긴 수열을 구하는 것은 동일하지만 이때, 합이 가장 큰 수열을 구해야 한다는 점을 주의해야 합니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringT.. 2021. 5. 6.