알고리즘 구현

CodeForces #158B Taxi [java]

HUII 2020. 4. 3. 23:02
import java.util.Scanner;

public class Taxi_158B {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		int n = scan.nextInt();
		int[] s = new int[n];
		int[] num = new int[4];
		for (int i = 0; i < n; i++) {
			s[i] = scan.nextInt();
			num[s[i] - 1]++;
		}
		int a = num[3]; // 4
		int b = num[2]; // 3
		if (num[2] >= num[0]) {
			num[0] = 0;
		} else {
			num[0] -= b;
		}
		int c = num[1] / 2;
		if (num[1] % 2 != 0) {
			c++;
			if (num[0] + 2 <= 4) {
				num[0] = 0;
			}else {
				num[0] -= 2;
			}
		}
		int d = num[0] / 4;
		if (num[0] % 4 != 0)
			d++;
		System.out.println(a + b + c + d);
		scan.close();
	}
}