알고리즘 문제 풀이
-
[백준] 2839 설탕 배달 - Java알고리즘 문제 풀이 2024. 5. 25. 02:04
문제 - 설탕 배달https://www.acmicpc.net/problem/2839 접근 방법 이 문제는 간다한 그리디 문제이다 N이 0이 될때 까지 반복문을 처리하면서 N을 줄여 나가면 될 것이다 만약 N이 5로 나누어 떨어질때 반복문을 종료 하면 될 것 같다 코드 작성import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { try (BufferedReader br = new BufferedReader(new InputStreamReade..
-
[백준] 2606 바이러스 - Java알고리즘 문제 풀이 2024. 5. 23. 13:49
문제 - 바이러스https://www.acmicpc.net/problem/2606 접근 방법 이 문제는 그래프 완전 탐색 문제이다너비 우선 탐색(BFS), 깊이 우선 탐색(DFS) 둘중에 한개를 활용하여 풀 수 있는 문제이다코드 작성 (BFS)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util.StringTokenizer;public class Main { static int ..
-
[백준] 5568 카드 놓기 - Java알고리즘 문제 풀이 2024. 5. 22. 16:08
문제 - 카드 놓기https://www.acmicpc.net/problem/5568 접근 방법 - 이 문제는 dfs 문제이다 dfs 방식으로 정수를 만든다- 자료구조는 set를 사용할 것이다 이유는 dfs방식으로 정수를 만든것을 set 자료구조에 저장할 것인데 set의 특성상 중복 된 것을 처리해줄 수 있기 때문이다 - 다른 자료구조를 사용할 경우 중복을 추가적으로 제거해줘야 하는 불편함이 있다 코드 작성import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.HashSet;import java.util.Set;public class Main { static in..
-
[백준] 11047 동전 0 - Java알고리즘 문제 풀이 2024. 5. 21. 15:28
문제 - 동전 0https://www.acmicpc.net/problem/11047 접근 방법 이 문제는 그리디로 풀 수 있다주어진 동전을 최소로 하여 K를 만들려고 한다 그럼 제일 큰 동전 부터 해서 K가 되게 만들면 될 것 같다동전 목록들을 자료구조에 넣고 내림 차순으로 정렬 해서 풀면 될 것 같다 나는 자료구조를 우선순위 큐를 사용했는데 (요즘 우선순위 큐에 맛들렸다)사용한 이유는 우선순위 큐까지 사용해서 풀 문제는 아니지만 만약 배열이나 list를 사용하면 내림차순으로 정렬을 해줘야 한다 하지만 우선순위큐를 사용하면 큐에서 데이터를 뺄때 정렬이 된 상태로 데이터가 출력이 되기 때문이다코드 작성(우선순위 큐를 사용했을때)import java.io.BufferedReader;import java...
-
[SWEA] 1249 보급로 - Java알고리즘 문제 풀이 2024. 5. 21. 01:38
문제 - 보급로https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=4&contestProbId=AV15QRX6APsCFAYD&categoryId=AV15QRX6APsCFAYD&categoryType=CODE&problemTitle=&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=4&pageSize=10&pageIndex=1 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 접근 방법 - 이 문제는 2차원 배열 문제이고 bfs 문제이다 0,0 을 시작으로 n,n 끝까지 가는 길에 최소의 ..
-
[백준] 1697 숨바꼭질 - Java알고리즘 문제 풀이 2024. 5. 15. 02:39
문제 - 숨바꼭질https://www.acmicpc.net/problem/1697 접근 방법 이 문제는 bfs 문제인데 1차원 배열로 푸는 bfs문제이다 생각 보다 쉬운 문제이다 시작점에서 +1, -1, *2를 해주면서 몇번째인지 기록하면서 방문하면 될 것 같다코드 작성import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Main { static int N; static int K; static int[] m..
-
[백준] 7576 토마토 - Java알고리즘 문제 풀이 2024. 5. 15. 02:17
문제 - 토마토https://www.acmicpc.net/problem/7576 접근방법 이 문제는 BFS로 풀면 되는데 하지만 이 문제의 어려운 점은 시작이 여러군데 라는 것이다 하지만 여러곳에서 시작을 한다고 하면 애초에 처음부터 Queue에 시작하는 곳을 다 넣는 방법으로 풀면 될 것같다코드 작성import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Queue;import java.util.StringTokenizer;public class Main { static int N; static int M; ..
-
[백준] 2178 미로 탐색 - Java알고리즘 문제 풀이 2024. 5. 14. 01:58
문제 - 미로 탐색https://www.acmicpc.net/problem/2178 입력 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. 출력 첫째 줄에 지나야 하는 최소의 칸 수를 출력한다. 항상 도착위치로 이동할 수 있는 경우만 입력으로 주어진다. 예제 입력4 6101111101010101011111011 예제 출력15접근 방법 이 문제는 bfs로 최단 거리의 수를 구하는 문제이다dfs로 풀면 시간 초과가 난다(작성자는 dfs로 무작정 풀다가 낙심했다..)그 이유는 dfs로 풀시 끝까지 탐색하고 다시 돌아오고 그런식으로 반복하다 보니 시간이 오래 걸린다그리고 방문했던 곳을 다시 방..