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 | #include <stdio.h> int dp[300][300] = { 0 }; int arr[300][300] = { 0 }; int main() { int n; scanf("%d", &n); //문자열을 받은 뒤, 숫자 배열로 전환 char str[300] = { 0 }; for (int i = 0; i < n; i++) { scanf("%s", str); int strlen = 0; for (int j = 0; j < 300; j++) { if (str[j] == '\0') break; arr[i][j] = (int)(str[j] - '0'); } } // 배열 dp int num = 1,tmp,flag=0; while (num<n) { tmp = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (arr[i][j] == num&&arr[i + 1][j] == num &&arr[i][j + 1] == num&&arr[i + 1][j + 1] == num) { arr[i][j] = num + 1; tmp++; } } } num++; if (tmp != 0) { printf("%d %d\n", num, tmp); flag = 1; } } if (flag == 0) printf("0"); } | cs |
'알고리즘 > DP' 카테고리의 다른 글
계단 오르기 더블릿 (0) | 2019.02.19 |
---|---|
점수 인플레이션 더블릿 (0) | 2019.02.19 |
주사위 쌓기 더블릿 (0) | 2019.02.18 |
완전순열 더블릿 (0) | 2019.02.18 |
bits -더블릿 (0) | 2019.02.16 |