PS/Baekjoon Online Judge

[백준 1987] 알파벳 [C]

kimyoungrok 2021. 9. 1. 02:57
728x90

백준 - 1987


풀이

입력된 대문자 알파벳의 아스키코드 값을 이용해,

한 번이라도 방문한 적 없는 경우에만 탐색해 최대의 칸 수를 구하면 된다.


소스코드

#include <stdio.h>
#include <stdbool.h>
char arr[20][20];
bool visited[26];
int R, C, result;
int dx[4] = {-1, 1}, dy[4] = {0, 0, -1, 1};

void BT(int x, int y, int cnt){
    cnt > result && (result = cnt);
	
    for (int i = 0; i < 4; i++){
        int nx = x + dx[i], ny = y + dy[i];
		
        if (nx >= 0 && ny >= 0 && nx < R && ny < C){
            int idx = arr[nx][ny] - 65;
			
            if (!visited[idx]){
                visited[idx] = true;
                BT(nx, ny, cnt + 1);
                visited[idx] = false;
            }
        }
    }
}
int main(){
    scanf("%d %d", &R, &C);
    for(int i = 0; i < R; i++)
        for (int j = 0; j < C; j++)
            scanf(" %c", &arr[i][j]);
			
    visited[arr[0][0]-65] = true;
    BT(0, 0, 1);
    printf("%d", result);
}

출처

 

1987번: 알파벳

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

www.acmicpc.net

728x90

'PS > Baekjoon Online Judge' 카테고리의 다른 글

[백준 1188] 음식 평론가 [C]  (0) 2021.09.02
[백준 2436] 공약수 [C]  (0) 2021.09.01
[백준 11790] Primorial vs LCM [C]  (0) 2021.08.31
[백준 11414] LCM [C]  (0) 2021.08.31
[백준 11690] LCM(1, 2, ..., n) [C]  (0) 2021.08.30