본문 바로가기
알고리즘/BOJ

1987 알파벳 (실패)

by 헤옹스 2018. 2. 19.
https://www.acmicpc.net/problem/1987

왜틀린거지?


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*
입력)
2 4
CAAB
ADCB
*/
#include<iostream>
 
using namespace std;
 
const int dx[4= { 0,0,1,-1 };
const int dy[4= { 1,-1,0,0 };
 
int maxLength;
int R, C;
char board[20][20];
// alphabet배열을 통해, 어차피 같은 알파벳은 방문할 수 없으므로,
// visited 배열이 따로 필요가 없다.
bool alphabet[26];                    // default값 : false
 
void dfs(int x, int y, int length) {
 
    if (maxLength <= length)
        maxLength = length;
 
    alphabet[board[x][y] - 65= true;
 
    for (int i = 0; i < 4; i++) {
        int nx = x + dx[i];
        int ny = y + dy[i];
 
        if (nx >= 0 && nx < 4 && ny >= 0 && ny < 4) {
            if (alphabet[board[nx][ny] - 65!= true) {
                dfs(nx, ny, length + 1);
            }
        }
    }
}
 
int main() {
    cin >> R >> C;        //R : 세로, C : 가로
 
    for (int i = 0; i < R; i++) {
        cin >> board[i];
    }
 
    dfs(000);
 
    cout << maxLength;
    //printf("%d  %d", 'A', 'A'- 65);        // 65 0
 
    return 0;
}
cs



    cin >> R >> C;        //R : 세로, C : 가로
 
    for (int i = 0; i < R; i++) {
for (int j = 0; j < C; j++) {
            cin >> board[i][j];
}
    }


입력받을 때 띄어쓰기가 안되어있는 문자열을 입력받으므로 'CAAB' 한 줄을 통째로 입력받으면

가로 인덱스는 자동으로 부여되나보다.

  C           A            A            B

[0][0]      [0][1]       [0][2]       [0][3]

'알고리즘 > BOJ' 카테고리의 다른 글

2662 기업투자 DP (코드만)  (0) 2018.02.20
1987 알파벳 (성공)  (0) 2018.02.19
6603 로또  (0) 2018.02.14
1941 소문난 칠공주  (0) 2018.02.14
2146 다리만들기  (0) 2018.02.12