블로그 언저리인 무언가
[백준/BOJ] 9715 면적 구하기 본문
728x90
문제 : 9715 면적 구하기
9715번: 면적 구하기
아래 다면체는 1x1x1 정육면체로 만들어져있다. 이 문제에서는 블록이 땅에 닿지 않고 공중에 떠있는 경우는 고려하지않는다(각 칸에는 한개 이상의 정육면체가 차곡차곡 쌓아 올려져있다). 이런
www.acmicpc.net
격자 공간에 네모난 박스가 쌓여있는 모양이 주어지고
겉넓이의 면적을 구해 출력하는 문제이다.
모든 위치를 체크하면서 박스가 존재한다면 위, 아래면이 있으므로 2씩 더하고
각 박스의 층마다 사방을 확인해 비어있거나 높이가 낮다면 1씩 더하게 만들었다.
Code
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
ll T;
cin >> T;
while (T--){
ll N, M, dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}}, ans=0;
string S[55];
cin >> N >> M;
for (int i=0;i<N;i++)
cin >> S[i];
for (int i=0;i<N;i++){
for (int j=0;j<M;j++){
ll cnt=0;
if (S[i][j]!='0'){
for (int k=1;k<=S[i][j]-'0';k++){
for (int l=0;l<4;l++){
ll ax=i+dir[l][0], ay=j+dir[l][1];
if (ax<0 || ax>=N || ay<0 || ay>=M || k>S[ax][ay]-'0')
cnt++;
}
}
cnt+=2;
}
ans+=cnt;
}
}
cout << ans << "\n";
}
return 0;
}
728x90
'Programming > BOJ' 카테고리의 다른 글
[백준/BOJ] 5525 IOIOI (0) | 2020.09.19 |
---|---|
[백준/BOJ] 1780 종이의 개수 (0) | 2020.09.19 |
[백준/BOJ] 1213 팰린드롬 만들기 (0) | 2020.09.18 |
[백준/BOJ] 1531 투명 (0) | 2020.09.18 |
[백준/BOJ] 15429 Odd Gnome (0) | 2020.09.18 |
Comments