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(0, 0, 0); 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 |