블로그 언저리인 무언가
[백준/BOJ] 9715 면적 구하기 본문
728x90
문제 : 9715 면적 구하기
격자 공간에 네모난 박스가 쌓여있는 모양이 주어지고
겉넓이의 면적을 구해 출력하는 문제이다.
모든 위치를 체크하면서 박스가 존재한다면 위, 아래면이 있으므로 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