728x90
문제 풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
int t[][][] = { { {0,0},{0,1},{0,2},{0,3},{0,3} }, // tetromino
{ {0,0},{1,0},{2,0},{3,0},{3,0} },
{ {0,0},{0,1},{1,0},{1,1},{1,1} },
{ {0,0},{0,1},{1,1},{1,2},{1,2} },
{ {0,1},{0,2},{1,0},{1,1},{1,2} },
{ {0,1},{1,0},{1,1},{2,0},{2,1} },
{ {0,0},{1,0},{1,1},{2,1},{2,1} },
{ {0,0},{0,1},{0,2},{1,2},{1,2} },
{ {0,2},{1,0},{1,1},{1,2},{1,2} },
{ {0,0},{0,1},{1,0},{2,0},{2,1} },
{ {0,0},{0,1},{1,1},{2,1},{2,1} },
{ {0,0},{0,1},{0,2},{1,0},{1,2} },
{ {0,0},{1,0},{1,1},{1,2},{1,2} },
{ {0,0},{1,0},{2,0},{2,1},{2,1} },
{ {0,1},{1,1},{2,0},{2,1},{2,1} },
{ {0,0},{0,1},{0,2},{1,1},{1,2} },
{ {0,1},{1,0},{1,1},{1,2},{1,2} },
{ {0,0},{1,0},{1,1},{2,0},{2,1} },
{ {0,1},{1,0},{1,1},{2,1},{2,1} } };
BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
StringTokenizer st = new StringTokenizer( br.readLine() );
int n = Integer.parseInt(st.nextToken()), m = Integer.parseInt(st.nextToken());
int p[][] = new int[n][m], i, j; // paper
for( i = 0; i < n; ++i ) {
st = new StringTokenizer( br.readLine() );
for( j = 0; j < m; ++j )
p[i][j] = Integer.parseInt(st.nextToken());
}
br.close();
int k, l, x, y, s, r = 0; // max x/y, sum, result( max of sum )
for( l = 0; l < 19; ++l ) {
x = t[l][4][0];
y = t[l][4][1];
for( i = 0; i < n; ++i ) {
if( x+i >= n )
break;
for( j = 0; j < m; ++j ) {
if( y+j >= m )
break;
s = 0;
for( k = 0; k < 4; ++k )
s += p[t[l][k][0]+i][t[l][k][1]+j];
r = r < s ? s : r;
}
}
}
System.out.println( r );
}
}
* 테트로미노( 정사각형 4개를 이어 붙인 폴리오미노 )의 모든 경우의 수 => 19개
* 19 x 5 x 2 인 int t[][][] 배열 생성 ( 4개의 좌표 + { 값이 가장 큰 행, 값이 가장 큰 열 } )
* 테트로미노의 종류에 따라 루프를 돌며 n x m 크기의 종이에 대고 이동하여 합이 가장 큰 것을 구함 ( 종이의 범위를 벗어나면 break )
반응형
'코딩 문제 풀기 ( Algorithm problem solving ) > 백준 온라인 저지 ( BOJ )' 카테고리의 다른 글
[백준(Baekjoon)][자바(java)] [삼성 SW 역량 테스트 기출 문제] 14502 : 연구소 (0) | 2021.04.18 |
---|---|
[백준(Baekjoon)][자바(java)] [삼성 SW 역량 테스트 기출 문제] 14499 : 주사위 굴리기 (0) | 2021.04.18 |
[백준(Baekjoon)][자바(java)] [삼성 SW 역량 테스트 기출 문제] 3190 : 뱀 (0) | 2021.04.18 |
[백준(Baekjoon)][자바(java)] [삼성 SW 역량 테스트 기출 문제] 20055 : 컨베이어 벨트 위의 로봇 (0) | 2021.04.13 |
[백준(Baekjoon)][자바(java)] [삼성 SW 역량 테스트 기출 문제] 14888 : 연산자 끼워넣기 (0) | 2021.04.13 |