본문 바로가기
Problem Solving/Baekjoon

[백준] 3213 피자 - Greedy / Java

by graycode 2023. 7. 12.

 문제 링크

 

3213번: 피자

첫째 줄에 친구의 수 N이 주어진다. (1 ≤ N ≤ 10,000) 다음 N개 줄에는 각 친구가 먹을 수 있는 피자의 양이 주어진다. 이 값은 항상 분수이며, 1/4, 1/2, 3/4중 하나이다.

www.acmicpc.net

 

 풀이 과정

 

 풀이 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(br.readLine());

        int one = 0, two = 0, three = 0;
        while (n-- > 0) {
            String input = br.readLine();
            if (input.equals("1/4")) one++;
            else if (input.equals("1/2")) two++;
            else three++;
        }

        int cnt = 0, rest = 0;

        if (one > three) {
            cnt += three;
            rest += one - three;
        } else cnt += three;

        if (two % 2 != 0) rest += 2;
        cnt += two / 2;

        if (rest % 4 != 0) cnt++;
        cnt += rest / 4;

        bw.write(String.valueOf(cnt));
        bw.flush();
    }

}

댓글