-
[백준/BOJ] 1652번 : 누울 자리를 찾아라 _C언어알고리즘/백준(BOJ) 2022. 2. 10. 00:02728x90반응형
>문제
>접근방법
가로든 세로든 구하는 방식은 똑같이 적용하면 될테고 행이나 열 단위로 빈 자리 개수를 카운트 하면서 카운트가 2 이상이면 자리 개수를 하나 늘려주면 될 것 같다. 짐이 있는 곳을 만나면 카운트를 다시 0부터 세도록 하고 반복.
>알고리즘
1. . 이 있으면 count 증가
2. for문1 : 가로 누울 자리 확인
3. for문2: 세로 누울 자리 확인
>코드
#include <stdio.h> #include <string.h> /* 알고리즘 2차원 배열에 방 입력받기 . 을 count해서 누울 자리 확인 if문1 가로 누울자리 확인 if문2 세로 누울자리 확인 */ char str[200][200]; int n, cntRow =0, cntCol=0; int i, r, c, count = 0; int main(void){ scanf("%d", &n); for(i=0; i<n; i++){ scanf("%s", str[i]); } for(r=0; r<n; r++){ count =0; for(c=0; c<n; c++){ if(str[r][c] != '.'){ if(count>=2){ cntRow++; } count = 0; } else{ count++; if(c == n-1 && count >= 2){ cntRow++; } } } } for(c=0; c<n; c++){ count =0; for(r=0; r<n; r++){ if(str[r][c] != '.'){ if(count>=2){ cntCol++; } count = 0; } else{ count++; if(r == n-1 && count >= 2){ cntCol++; } } } } printf("%d %d", cntRow, cntCol); return 0; }
>결과
>결론
처음에 짰던 코드는 ..X.. 를 두 개의 자리로 카운트하는 경우를 포함하지 못해서 다시 짰다. 아 잠와
LIST'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/BOJ] 3986번 : 좋은 단어 _C/C++ (0) 2022.02.15 [백준/BOJ] 10773번 : 제로 _C/C++ (0) 2022.02.14 [백준/BOJ] 9012번 : 괄호 _C언어 (0) 2022.02.13 [백준/BOJ] 10798번 : 세로읽기 _C언어 (0) 2022.02.13 [백준/BOJ] 5555번 : 반지 _C언어 (0) 2022.02.04