일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- algorithm
- DFS
- 프로젝트
- 프로그래머스
- 그래프
- Java8
- programmers
- kotlin
- 네트워크
- OS
- java
- Brute-force
- LEVEL2
- DP
- lambda
- 스프링
- 코틀린
- 모던자바
- 백준
- TDD
- 운영체제
- baekjoon
- 백트래킹
- back-end
- Spring
- backtracking
- 자료구조
- 자바
- BFS
- 알고리즘
- Today
- Total
목록BFS (6)
요깨비's LAB
import java.util.Scanner; public class Main { static boolean isGet = false; public static void main(String[] args) { Scanner scr = new Scanner(System.in); long A = scr.nextInt(); long B = scr.nextInt(); multiplyTwo(A, B, 1); if (isGet) { return; } appendOne(A, B, 1); if (isGet) { return; } System.out.println(-1); } public static void multiplyTwo(long value, long B, long count) { if (isGet || val..
import java.util.*; public class Main { static int N; static int groupCount = 0; static int[][] map; static boolean[][] isVisited; static int min = Integer.MAX_VALUE; public static void main(String[] args) { Scanner scr = new Scanner(System.in); N = scr.nextInt(); map = new int[N][N]; isVisited = new boolean[N][N]; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { map[i][j] = scr.nextI..
import java.util.*; class Solution { public int[] solution(String[][] places) { int[] answer = new int[5]; int caseLen = places.length; for (int i = 0; i < 5; i++) { char[][] map = new char[5][5]; List participants = new ArrayList(); for (int j = 0; j < 5; j++) { char[] carr = places[i][j].toCharArray(); for (int k = 0; k < 5; k++) { if (carr[k] == 'P') { participants.add(new Participant(j, k));..
import java.io.IOException; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { static int row; static int col; public static void main(String[] args) throws IOException { Scanner scr = new Scanner(System.in); int cheeseCnt = 0; row = scr.nextInt(); col = scr.nextInt(); int[][] map = new int[row][col]; for (int i = 0; i < row; i++) { for (int j = 0;..
방향그래프인 것을 생각하고, DFS를 이용하여 해결하였습니다. 로직은 아래와 같이 생각했습니다. 행렬에 값을 넣을때 1일 경우 해당 위치 값 x,y를 이용하여 Element객체를 만들어 Queue에 넣는다. Queue에서 Element를 하나 꺼낸다. 해당 위치를 Root로 두고 y는 현재 위치 x는 다음 위치로 DFS 연산을 진행한다. -> DFS 연산은 가리키는 곳이 값이 1이면서 방문하지 않은 곳이면 Root의 next 위치에서 다음 next 값들을 1로 바꿔준다.(이동 가능함을 체크한다는 의미) 그렇지 않으면 종료 -> 만약 Root값과 가리키는 값이 같으면 종료. 그려진 맵을 출력 아래에는 코드입니다. import java.util.LinkedList; import java.util.Queue;..
어후;; 20번 틀리고 21번째에 드디어 해결했네요... 알고보니 로직은 그럭저럭 맞는것 같았으나 BFS에 대한 공부 부족과 객체 지향 활용을 못한 원인이 가장 컸던 것 같습니다.. 차근차근 어떤 문제 상황에 부딪혔고 해결했는지 끄적여 보겠습니다. 저는 고수분들이랑 다르게 간단하고 명료하게 추상화해서 몇줄 안되는 코드로는 못짜서 코드가 길고 좀 보기 싫습니다.. 그냥 저만의 회고시간입니다.. 클래스 정의 우선 Vertax 클래스를 설계했습니다. class Vertax { private int index; private int color; // -1 색없음, 0 빨 1 파 private HashSet connectedEdges; // 해당 정점과 연결된 정점들을 저장 하기 위한 자료구조 public Ver..