문제: https://www.acmicpc.net/problem/15683
시험에서는 참조값 초기화에서 버벅거려서 DFS까지 다 구현해놓고 에러를 찾다가 제시간에 제출하지 못했다 ....또륵.,.
소 잃고 외양간이라도 고쳐본다...
백준 사이트에 올린 소스코드에는 주석이 달려있으니 코드보고 이해가 안간다면 주석을 풀어가면서 실행해보면 이해가 빠를 거에요!
백준 사이트에 제출한 소스 코드 : https://www.acmicpc.net/source/8390315
import java.util.LinkedList; import java.util.Scanner; public class Main { static LinkedList cctv = new LinkedList<>(); static int min; static int col; static int row; static int [][] map; public static void main(String[] args) { Scanner scan = new Scanner(System.in); col = scan.nextInt(); row = scan.nextInt(); min = col * row; map = new int[col][row]; boolean [][] chk_map = new boolean[col][row]; for(int i = 0 ; i < col ; i++) { for(int j = 0 ; j < row; j ++) { map[i][j] = scan.nextInt(); if(map[i][j] > 0 && map[i][j] < 6) { cctv.add(new Node(map[i][j],i,j)); } if(map[i][j] ==6){ chk_map[i][j] = true; } } } search(0,chk_map); System.out.println(min); scan.close(); } public static void search(int start, boolean[][] arr) { boolean[][] resArr = new boolean[col][row]; if (start >= cctv.size() ) { int count = count(arr); if(min > count) { min = count; } return ; } Node n = cctv.get(start); switch (n.value) { case 1: // System.out.println("type : " + n.value); for(int i = 0; i < 4; i++) { for(int z = 0 ; z < col ; z++) { for( int j = 0 ; j = 0 ; i--) {
if(map[i][node.row] == 6) { break; } arr[i][node.row] = true; } break; case 1 : // System.out.println("하"); for(int i = node.col ; i < col ; i++) { if(map[i][node.row] == 6) { break; } arr[i][node.row] = true; } break; case 2 : // System.out.println("좌"); for(int i = node.row ; i >= 0 ; i--) { if(map[node.col][i] == 6) { break; } arr[node.col][i] = true; } break; case 3 : // System.out.println("우"); for(int i = node.row ; i < row; i++) { if(map[node.col][i] == 6) { break; } arr[node.col][i] = true; } break; } return arr; } static class Node { int value; int col; int row; public Node(int v, int c, int r) { value = v ; col = c; row = r; } } }
'알고리즘 > 심심풀이 문제풀기' 카테고리의 다른 글
[심심풀이 백준문제풀기] 1874번 스택 수열 (파이썬3) (0) | 2018.09.04 |
---|---|
[심심풀이 백준문제풀기] 10430번 나머지 (파이썬3) (0) | 2018.09.04 |
[심심풀이 백준문제풀기] 2606번 바이러스 (0) | 2018.04.13 |
[심심풀이 백준문제풀기] 9012번 괄호 (0) | 2018.04.10 |
[심심풀이 백준문제풀기] 10828번 스택 (0) | 2018.04.10 |