갱스타
갱스타의 블로그
갱스타
전체 방문자
오늘
어제
  • 분류 전체보기 (93)
    • TIL(Today I Learned) (10)
    • 노력만이 살길! (58)
      • 알고리즘 (29)
      • 네트워크 (3)
      • Python (1)
      • Spring Boot (1)
      • 합격하기 (0)
      • Adsp (3)
      • SQLD (10)
      • 데이터분석 (5)
      • 취업일기 (4)
      • IT 프로젝트 관리 (1)
      • 운영체제 (1)
    • Life (10)
      • 일상 그리고 리뷰 (10)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • SW Expert Academy
  • 달팽이 반복문
  • 싸피합격
  • 백준 알고리즘
  • SWEA 13038
  • 백준
  • 백준 참외밭
  • Get
  • 백준 달팽이
  • 달팽이문제
  • 백준 2477번
  • 통신
  • post
  • 싸피7기
  • 싸피
  • java 알고리즘
  • mac 단축키
  • 알고리즘
  • swea
  • 네트워크

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갱스타

갱스타의 블로그

카테고리 없음

백준 1987 알파벳

2022. 3. 1. 01:05

https://www.acmicpc.net/problem/1987

 

1987번: 알파벳

세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으

www.acmicpc.net

백준 1987 알파벳

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
//https://www.acmicpc.net/problem/1987
public class Main{
    static int R,C;
    static char[][] board;
    static int[] dx={-1,1,0,0};
    static int[] dy={0,0,-1,1};
    static boolean[] visited;
    static int max;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = null;
        st = new StringTokenizer(br.readLine());
        R = Integer.parseInt(st.nextToken());
        C = Integer.parseInt(st.nextToken());
        board = new char[R][C];
        visited=new boolean[26];
        for (int i = 0; i < R; i++) {
            board[i] = br.readLine().toCharArray();
        }

            dfs(0,0,1);

        System.out.println(max);

    }
    static void dfs(int x,int y,int cnt){
        visited[board[x][y]-'A']=true;
        max=Math.max(max,cnt);
        //상하좌우 4번 반복
        for (int p = 0; p < 4; p++) {
            int xx=x+dx[p];
            int yy=y+dy[p];
            if(xx>-1&&xx<R&&yy>-1&&yy<C){
                if(visited[board[xx][yy]-'A']) continue;
                visited[board[xx][yy]-'A']=true;
                dfs(xx,yy,cnt+1);
                visited[board[xx][yy]-'A']=false;
            }


        }
    }
}
    갱스타
    갱스타
    열심히 배워보자

    티스토리툴바