주어진 수들을 사용해 각 묶음의 합이 다음 규칙을 만족하도록 여러 개의 묶음을 만들고자 한다:
즉, 짝수 → 홀수 → 짝수 → 홀수 ... 형태로 번갈아가며 묶음을 만들어야 하며, 주어진 수를 전부 사용하여 만들 수 있는 최대 묶음 수를 구해야 한다.
짝수 1개 또는 홀수 2개로 만들 수 있다.홀수 1개로만 만들 수 있다.groupNum을 0부터 시작하여,import java.util.Scanner;
public class Main {
public static final int MAX_N = 1000;
public static int n;
public static int[] blocks = new int[MAX_N];
public static int odd, even;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
for(int i = 0; i < n; i++)
blocks[i] = sc.nextInt();
for(int i = 0; i < n; i++) {
if(blocks[i] % 2 == 0)
even++;
else
odd++;
}
int groupNum = 0;
while(true) {
if(groupNum % 2 == 0) {
if(even > 0) {
even--;
groupNum++;
}
else if(odd >= 2) {
odd -= 2;
groupNum++;
}
else {
if(even > 0 || odd > 0)
groupNum--;
break;
}
}
else {
if(odd > 0) {
odd--;
groupNum++;
}
else {
break;
}
}
}
System.out.print(groupNum);
}
}