[백준] 5532번 방학 숙제 풀이 코드 (C/C++/Java 자바/Python 파이썬)

by iamtrueline

풀이

하루에 한 과목이 아닌 두 과목 모두 풀 수 있으므로 max, ceil 함수를 사용해서 남은 일수를 계산합니다. C는 max 함수가 없으므로 매크로로 지정해서 사용합니다.


코드

C

#include <stdio.h>
#include <math.h>

#define max(x, y) ((x) > (y) ? (x) : (y))

int main() {
    int l, a, b, c, d, freeday;
    scanf("%d %d %d %d %d", &l, &a, &b, &c, &d);
    freeday = l - max(ceil(((float)a/c)), ceil(((float)b/d)));
    printf("%d", freeday);
    return 0;
}

C++

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int l, a, b, c, d, freeday;
    cin>>l>>a>>b>>c>>d;
    freeday = l - max(ceil(((float)a/c)), ceil(((float)b/d)));
    cout<<freeday;
    return 0;
}

Java

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int l = sc.nextInt(), a = sc.nextInt(), b = sc.nextInt(), c = sc.nextInt(), d = sc.nextInt();
        System.out.print((int)(l - Math.max(Math.ceil(((float)a/c)), Math.ceil(((float)b/d)))));
    }
}

Python

from math import ceil
l, a, b, c, d = [int(input()) for i in range(5)]
print(l - max(ceil(a/c), ceil(b/d)))

문제 출처

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

You may also like

Leave a Comment

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00