전체 글127 백준 알고리즘: 2606번 바이러스 문제 정보 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 핵심 그래프 탐색 알고리즘을 통해서 연결된 노드를 탐색하는 것! 여러 그래프 탐색 알고리즘을 사용할 수 있겠지만, 나는 깊이 우선 탐색을 사용하여 풀이하였다 map을 어떻게 입력 받고 구성할 것이며 visited를 확인해주는 것이 매우 중요하다 하지만 그렇게 어렵지는 않았던 것 같다 풀이 package solving; import java.io.*; import java.util.*; class Main { public static void main(Str.. 알고리즘/Java 2023. 10. 25. 백준 알고리즘: 2178번 미로 탐색 문제 정보 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 핵심 BFS 알고리즘을 활용하여 문제를 풀이한다 큐를 사용할 때, Node 클래스를 만들어서 현재 위치와 Depth를 기록하고 이를 활용하였다 또한 현재 위치가 Invalid한지 확인하는 것, 갈 수 있는 위치인지(해당 Map의 값이 1인지) 확인하는 것 또한 빠뜨릴 수 있다 내가 가장 생각을 많이 했던 부분은 다음과 같다 while (!queue.isEmpty()) { Node popItem = queue.poll(); int row = popItem.row; int col = p.. 알고리즘/Java 2023. 10. 24. 백준 알고리즘: 1697번 숨바꼭질 문제 정보 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 핵심 ㅇㅇ 풀이 처음 풀이(실패) : DFS -> Timeout DFS 알고리즘을 활용하여 처음 풀이를 시작하였다 하지만 경우의 수가 무수히 많이 나오기 때문에, 전체 경우의 수를 모두 구하기에는 어려움이 있었던 것 같다 아무리 빨리 중단하도록 코드를 작성하여도, 결국에는 특정 조건에 만족하지 않으면 거의 모든 경우의 수를 확인해 봐야만 하기에 이 코드는 이 문제에서 효율적이지 않은 코드였다 import java.io.Buf.. 알고리즘/Java 2023. 10. 23. 백준 알고리즘 2667번: 단지번호붙이기 문제 정보 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 핵심 DFS, 백 트래킹 알고리즘을 사용하여 풀이하는 문제 5= 0 && col < size); } } NxN 배열에서 왼쪽 가장 위(0,0) 위치부터 오른쪽 가장 아래(N-1, N-1)까지 DFS를 통하여 인접한 위치로의 깊이 우선 탐색을 하여 지도의 값이 1이면 visited를 true로 만들어 주며, 해당 위치에서 다시 깊이 우선 탐색을 실시한다 한번 탐색할 때마다 count를 계속 올려주고, 계산이 끝났다면 이를 countList 리스트에 넣어 .. 알고리즘/Java 2023. 10. 23. Programmers: 신규 아이디 추천(2021 KAKAO BLIND RECURITMENT) 문제 정보 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 핵심 String / StringBuilder 의 문자열 가공 메서드를 잘 인지하고 있는지! Regular Expression에 대해서도 어느정도 알아야 효율적으로 풀 수 있는 문제 (replaceAll) 풀이 class Solution { public String solution(String new_id) { String step1 = new_id.toLowerCase(); StringBuilder step2 = new StringBuilder(); for(int i=0; i 0 && step4... 알고리즘/Java 2023. 10. 17. 이전 1 ··· 8 9 10 11 12 13 14 ··· 26 다음