살아가는 이유_EU
내가 살아가는 이유, 삶
살아가는 이유_EU
전체 방문자
오늘
어제
  • 삶 (159)
    • 이유's EATERY (16)
      • 맛집 (10)
      • 까페 (4)
      • 맛있는 Recipe (1)
    • 이유's LIFE (16)
      • 국내여행 (5)
      • 해외여행 (2)
      • 운동 (1)
      • 취업정보 (0)
      • 끄적끄적 (5)
      • 일기쟝 (3)
      • 세상 이야기 (0)
      • 결혼 준비 (0)
    • 이유's Programming (43)
      • JavaScript (6)
      • Java (7)
      • C++ (0)
      • DBMS (24)
      • Spring (3)
      • til (1)
      • HTTP (2)
    • 이유's REVIEW (13)
      • BOOK (6)
      • PROGRAM or MOVIE (5)
      • PRODUCT 제품리뷰 (2)
    • 이유's STUDY (31)
      • 수업 관련 (2)
      • IT 시사 (2)
      • IT NEWS (2)
      • IVIEW (0)
      • IOS 앱 만들기 (0)
      • 알고리즘 문제풀이 (23)
      • PM data literacy (2)
    • 이유's ENGLISH (13)
      • Writing about something! (12)
      • Feedback (1)
      • TIL (0)
    • 이유's DB 공부 (1)
      • MySQL DB (0)
      • Postgre (1)
    • Computer 공부 (17)
      • Backend question (10)
      • Clean architecture (2)
      • Operating system (2)
      • Network (3)
      • 항해 (0)

블로그 메뉴

  • 홈
  • EATERY's 맛집
  • CAFE 까페
  • Recipe 레시피
  • IT 공부
  • 방명록
  • 태그

공지사항

인기 글

태그

  • 묵리
  • memoziation
  • 고메동 카페
  • 인절미 티라미수
  • 아메리카토노
  • 파스타맛집
  • 용인까페
  • 스쿤브레드
  • go hand in hand
  • key 로 접근
  • 자바스크립트
  • have something to do with뜻
  • 자세요정
  • map 하는 법
  • 영어공부
  • 흑임자 크림
  • 현명하게 리액트
  • 용인추천
  • 피지오필로소피
  • 삼돈식탁
  • have something to do with
  • Array로 접근
  • 맛집
  • React.memo
  • 송계옥
  • 스테이크
  • 고메커피
  • 용인맛집
  • 렌더링 수 줄이기
  • 어게인마이라이프

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
살아가는 이유_EU

내가 살아가는 이유, 삶

[ 백준 ] 2580 번 - 스도쿠 / java 이용 / 아직 못 푼 문제 ㅠㅠ
이유's STUDY/알고리즘 문제풀이

[ 백준 ] 2580 번 - 스도쿠 / java 이용 / 아직 못 푼 문제 ㅠㅠ

2021. 8. 11. 13:44
728x90
반응형

 

우선 dfs 와 bfs  를 조금더 공부하고 다시 풀어봐야겠다! 

dfs 로 풀면 되는데 어디서 재귀조건으로 나가는지 지나가는지 확인하기. 

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static int N, M =0;
    public static StringBuilder sb = new StringBuilder();
    public static boolean check[];
    public static int arr[][] = new int[9][9];

    public static void sudoku(int row, int col ) {

        // 스도쿠 -> 재귀, 브루트포스랑 비슷한 문제 ->
        if(arr[row])

        // 0 이라는 find 조건 **
        if(arr[row][col] ==0) {
            // 1 에서 9까지 있는지 확인~
            for(int i =0; i<=9; i++) {
                if(poosibility(row, col, i)) {
                    arr[row][col] = i;
                    System.out.println(arr[row][col]);
                    System.out.println(i);
                    sudoku(row, col+1);
                }
            }
        }



        // 1. row 를 먼저 검색하자
        sudoku(row+1, col);


    }
    public static boolean poosibility (int row, int col, int val) {

        // 행별 search
        // 아주 그냥 뒤적뒤적 다 찾아버리겠어~~
        for(int i =0; i<9; i++) {
            if(arr[col][i] == val)
                return false;
        }

        // column 별 search
        for(int i =0; i<9; i++) {
            if(arr[col][i] == val)
                return false;
        }

        // 여기도 다 참고 -> 여기는 int 가 i 랑 j 가 아니다
        int set_row = (row/3)*3;
        int set_column = (col/3)*3;

        for(int i=set_row;i<set_row+3; i++) {
            for(int j=set_column;j<set_column+3;j++)
                if(arr[i][j] == val)
                    return false;
        }

        return true;
    }


    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        //N과 M 배우기.
        StringTokenizer st;

        // 입력 과정
        for(int i =0; i<9; i++) {
            st = new StringTokenizer(br.readLine());
            for(int j=0; j<9; j++) {
                arr[i][j] = Integer.parseInt(st.nextToken());
            }
        }


        //dfs 함수 수행
        sudoku(0, 0);
//        System.out.println(sb);

    }

}
728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'이유's STUDY > 알고리즘 문제풀이' 카테고리의 다른 글

[ leetcode ] dfs 문제 - number of islands  (0) 2021.11.02
[ 자료구조 ] LinkedList  (0) 2021.08.26
[ 백준 ] 1560번 - N과 m (2) --- java 이용  (0) 2021.08.06
[ 백준 ] 11729 - 하노이 탑 이동 순서  (0) 2021.08.03
[ 백준 ] 별찍기 -10 -- Java 이용  (0) 2021.07.30
    '이유's STUDY/알고리즘 문제풀이' 카테고리의 다른 글
    • [ leetcode ] dfs 문제 - number of islands
    • [ 자료구조 ] LinkedList
    • [ 백준 ] 1560번 - N과 m (2) --- java 이용
    • [ 백준 ] 11729 - 하노이 탑 이동 순서
    살아가는 이유_EU
    살아가는 이유_EU
    안녕하세요. 초보개발자의 일상을 담은 블로그입니다.

    티스토리툴바