본문 바로가기

Algorithm/BAEKJOON

[BOJ] 3495번 아스키 도형 (C++)

728x90
반응형

https://www.acmicpc.net/problem/3495

 

3495번: 아스키 도형

창영이는 메모장에 '.', '\', '/'을 이용해서 도형을 그렸다. 각 문자는 그림에서 1*1크기의 단위 정사각형을 나타낸다. '.'은 빈 칸을 나타내며, '/'는 정사각형의 왼쪽 아래 꼭짓점과 오른쪽 위 꼭짓

www.acmicpc.net

 

#include <iostream>
using namespace std;

int main() {
	int h, w, ans = 0;
	string board[100];
	
	cin >> h >> w;
	for(int i = 0; i < h; i++){
		cin >> board[i];
		int s = 0;
		for(int j = 0; j < w; j++){
			if(board[i][j] != '.'){
				s++;
				ans += 1;
			}
			if(s % 2 == 1 && board[i][j] == '.'){
				ans += 2;
			}
		}
	}
	cout << ans / 2 << endl;
	return 0;
}

'/'이나 '\'은 1/2의 넓이를 갖고, '.'일 때는 도형 안에 있는 경우에만 넓이 1을 더해주어야 한다. 

줄마다 '/'이나 '\'의 개수가 홀수일 때 도형이 열린 것이고, 짝수일 때 도형이 닫힌 것이다.

728x90
반응형

'Algorithm > BAEKJOON' 카테고리의 다른 글

[BOJ] 15989번 1, 2, 3 더하기 4 (C++)  (0) 2022.02.14
[BOJ] 16165번 걸그룹 마스터 준석이 (C++)  (0) 2022.02.14
[BOJ] 21966번 (중략) (C++)  (0) 2022.02.13
[BOJ] 1461번 도서관 (C++)  (0) 2022.02.13
[BOJ] 11652번 카드 (C++)  (0) 2022.02.12