문제링크 : https://www.acmicpc.net/problem/3495
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define MAX 987654321
#define pii pair <int, int>
char arr[101][101];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
int H, W;
int result = 0;
cin >> H >> W;
for(int i=0; i<H; i++)
{
for(int j=0; j<W; j++)
{
cin >> arr[i][j];
}
}
for(int i=0; i<H; i++)
{
int cnt = 0;
for(int j=0; j<W; j++)
{
if(arr[i][j] == '/' || arr[i][j] == '\\') //괄호당 넓이 0.5
{
cnt++; //슬래쉬 갯수
result+=1;
}
if(cnt % 2 && arr[i][j]=='.') result +=2; //열려있으면 점 갯수 세기
}
}
cout << result / 2;
return 0;
}
괄호 일때는 넓이가 0.5 이고, 점일때는 넓이가 1이다.
괄호의 갯수를 체크하여 괄호가 홀수개이면 열려있는 상태이기에 점이 도형 내부에 있는 것이고,
괄호가 짝수개이면 닫혀있는 상태이기에 점이 도형 외부에 있는 것이기에 개수를 세지 않는다.
여기서는 int 값으로 계산하기 위해 값을 2배해주고 결과값에서 2를 나눠주었다.
'백준 > 실버' 카테고리의 다른 글
[백준 25192번] 인사성 밝은 곰곰이 (C++) (0) | 2023.05.26 |
---|---|
[백준 26266번] 비즈네르 암호 해독 (C++) (0) | 2023.05.24 |
[백준 20117번] 호반우 상인의 이상한 품질 계산법 (C++) (0) | 2023.05.19 |
[백준 15787번] 기차가 어둠을 헤치고 은하수를 (C++) (0) | 2023.05.17 |
[백준 14231번] 박스 포장 (C++) (0) | 2023.05.15 |