[백준, BOJ 1581] 락스타 락동호 (java)
Problem Solving/BOJ

[백준, BOJ 1581] 락스타 락동호 (java)

728x90

https://www.acmicpc.net/problem/1581

메모리: 14,200 KB , 시간: 124 ms

사용 알고리즘: 많은 조건 분기

728x90

FF가 있다면 무조건 모든 FF를 먼저 넣어주는 것이 좋다.

이후 FS가 있다면 FS를 하나 넣어 느리게 시작하는 음악을 넣어주러 가고, 또 모든 SS를 넣어준다.

이후 SF와 FS를 번갈아가면서 넣어주면 최대한 많은 곡을 넣어줄 수 있다.

 

이를 if문을 통해 조건 분기만 잘 구현해주면 된다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws Exception{

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringTokenizer st = new StringTokenizer(br.readLine());
        int FF = Integer.parseInt(st.nextToken());
        int FS = Integer.parseInt(st.nextToken());
        int SF = Integer.parseInt(st.nextToken());
        int SS = Integer.parseInt(st.nextToken());

        int result = 0;

        // FF가 있다면 먼저 음반에 모두 실는다.
        result += FF;
        // 느리게 시작하는 곡으로 넘어갈 수 있다면 넘어간다
        if(FS != 0) {
            // SS부터 모두 음반에 실는다.
            result += SS;
            // FS와 SF를 반복해서 음반에 실는다.
            if(FS > SF) {
                result += SF * 2 + 1;
            }
            else{
                result += FS * 2;
            }
        }
        // 빠르게 시작하는 곡이 하나도 없다면
        if(FF == 0 && FS == 0) {
            // SS부터 모두 음반에 실는다.
            result += SS;
            // SF가 있다면 하나 실는다.
            if(SF != 0) result += 1;
        }

        System.out.println(result);
    }
}
728x90