https://www.acmicpc.net/problem/1652
문제
N*N(1<=N<=100) 형태로 방의 구조가 주어질 때, 영식이가 누울 수 있는 자리의 경우의 수를 출력한다. 방에 누울 경우 몸을 양 옆으로 쭉 뻗기 때문에 반드시 벽이나 짐에 닿게 된다. 가로로 누울 수 있는 자리와 세로로 누울 수 잇는 자리의 개수를 출력한다.
풀이
3칸이 연속해서 비어 있어도 경우의 수는 2가 아닌 1이 됨을 조심한다. 반복문을 사용하여 해결한다.
#include <iostream>
using namespace std;
int n, r = 0, c = 0;
string arr[110];
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
for (int i = 0; i < n; i++) {
int cnt = 0;
for (int j = 0; j< n; j++) {
if (arr[i][j] == '.') cnt++;
else {
if (cnt >= 2) r++;
cnt = 0;
}
}
if (cnt >= 2) r++;
}
for (int i = 0; i < n; i++) {
int cnt = 0;
for (int j = 0; j < n; j++) {
if (arr[j][i] == '.') cnt++;
else {
if (cnt >= 2) c++;
cnt = 0;
}
}
if (cnt >= 2) c++;
}
cout << r << ' ' << c;
}
'Koala - 14기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/Python] 2470번 두 용액 (0) | 2024.03.31 |
---|---|
[백준/python] 1063 킹 (0) | 2024.03.31 |
백준 9996번 한국이 그리울 땐 서버에 접속하지 C++ (0) | 2024.03.31 |
[BOJ/C++] 2230 수 고르기 (0) | 2024.03.28 |
[백준/C++] 5635번: 생일 (0) | 2024.03.28 |