<그림 1>과 같이 정사각형 모양을 한 여섯 종류의 색종이가 있다. ①번 색종이는 한 변의 길이가 1cm이고, 차례대로 그 길이가 1cm씩 커져, ⑥번 색종이의 한 변의 길이는 6cm가 된다.
그림 1
주어진 색종이를 <그림 2>와 같이 가로, 세로의 길이가 각각 6cm인 판 위에 붙이려고 한다. 색종이를 붙일 때는 색종이가 판의 경계 밖으로 삐져 나가서는 안되며, 색종이가 서로 겹쳐서도 안된다. 또한 하나의 색종이는 하나의 판에만 붙여야 한다.
답
package main2;
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int arr[]=new int[7];
for(int i=1;i<=6;i++){
arr[i]=scanner.nextInt();
}
int ans=0;
//size 6
ans+=arr[6];
//size 5
arr[1]-=11*arr[5];
arr[1] = arr[1] < 0 ? 0 : arr[1];
ans+=arr[5];
//size 4
ans+=arr[4];
int area = 20*arr[4];
while(arr[2]>0 && area>0){
area-=4;
arr[2]--;
}
while(arr[1]>0 && area>0){
area--;
arr[1]--;
}
//size 3
int m = arr[3]/4;
int r = arr[3]%4;
ans+=m;
ans+=r>0? 1 : 0;
if(r>0){
int p=0, q=0;
if(r==1){
p = 4*5;
q = 1*7;
}else if(r==2){
p = 4*3;
q = 1*6;
}else if(r==3){
p= 4*1;
q= 1*5;
}
while(arr[2]>0 && p>0){
p-=4;
arr[2]--;
}
while(arr[1]>0 && p>0){
p--;
arr[1]--;
}
while(arr[1]>0 && q>0){
q--;
arr[1]--;
}
}
//size 2
m = arr[2]/9;
r = arr[2]%9;
ans+=m;
ans+=r>0 ? 1:0;
if(r>0){
area = 36-r*4;
while(arr[1]>0 && area>0){
area--;
arr[1]--;
}
}
//size 1
m = arr[1]/36;
r = arr[1]%36;
ans+=m;
ans+=r>0 ? 1 : 0;
System.out.println(ans);
}
문제 http://59.23.150.58/30stair/packet/packet.php?pname=packet
답
import java.util.Scanner;
public class Main { public static void main(String args[]) {
}