반응형
Notice
Recent Posts
Recent Comments
Link
지구정복
[구현] 백준 - 겉넓이 구하기 본문
728x90
반응형
https://www.acmicpc.net/problem/16931
-문제해설
3x3일 경우 종이 하나에 쌓이는 도형의 겉넓이를 구한다. (1, 1)종이 위에 한 개의 정육면체가 쌓이면 겉넓이는 6
(1,2) 종이 위에 두 개의 정육면체가 쌓이면 겉넓이는 2+2*4=10
이렇게해서 각 종이위에 쌓이는 정육면체의 겉넓이를 모두 구한다.
그리고 겹치는 겉넓이를 모두 빼주면 된다.
아래 그림 참고
-자바
package implementation;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class BJ16931 {
private static BufferedWriter bw =
new BufferedWriter( new OutputStreamWriter(System.out));
private static int n, m, sum;
private static int[][] arr;
private static StringTokenizer st;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
st = new StringTokenizer( br.readLine() );
n = Integer.parseInt( st.nextToken() );
m = Integer.parseInt( st.nextToken() );
arr = new int[n+1][m+1];
//각 종이 위에 있는 각각의 도형값을 입력받음과 동시에 겉넓이를 구한다.
for( int i=1; i<=n; i++ ) {
st = new StringTokenizer( br.readLine() );
for( int j=1; j<=m; j++ ) {
arr[i][j] = Integer.parseInt( st.nextToken() );
sum += 2 + arr[i][j]*4;
}
}
//각각의 도형들의 겉넓이에서 겹쳐진 도형의 겉넓이를 빼준다.
//먼저 행에 대해서 겹치는 부분을 빼준다.
for( int i=1; i<=n; i++ ) {
for( int j=1; j<m; j++ ) {
sum -= Math.min( arr[i][j], arr[i][j+1] ) * 2;
}
}
//다음으로 열에 대해서 겹치는 부분을 빼준다.
for( int i=1; i<=m; i++ ) {
for( int j=1; j<n; j++ ) {
sum -= Math.min( arr[j][i], arr[j+1][i] ) * 2;
}
}
bw.write( sum + "\n" );
bw.flush();
bw.close();
br.close();
}
}
-파이썬
n, m = map(int, input().split())
arr = [ [0,0,0,0] ]
for i in range( 1, n+1 ):
arr.append( [0] + list( map( int, input().split() ) ) )
sum = 0
for i in range( 1, n+1 ):
for j in range( 1, m+1 ):
sum += 2 + arr[i][j]*4
for i in range( 1, n+1 ):
for j in range( 1, m ):
sum -= min( arr[i][j], arr[i][j+1] ) * 2
for i in range( 1, m+1 ):
for j in range( 1, n ):
sum -= min( arr[j][i], arr[j+1][i] ) * 2
print( sum )
728x90
반응형
'데이터 엔지니어링 정복 > Algorithm' 카테고리의 다른 글
[브루트포스] 백준 - 체스판 다시 칠하기 (0) | 2021.07.22 |
---|---|
[수학] 백준 - 레벨햄버거 (0) | 2021.07.21 |
[문자열] 백준 - 무한 문자열 (0) | 2021.07.20 |
[수학] 백준 - 시험 감독 (0) | 2021.07.19 |
[그리디, 수학, 구현] 백준 - 전자레인지 (0) | 2021.07.18 |
Comments