본문 바로가기
Algorithm/BackJoon

5543번: 상근날드

by 꼬부기가우는소리 2023. 9. 7.
728x90

 

- 문제 사이트: https://www.acmicpc.net/problem/5543

 

5543번: 상근날드

입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가격

www.acmicpc.net

 

3종류의 햄버거와 2종류의 음료가 주어졌을 때,

각각 가장 싼 햄버거와 가장 싼 음료를 선택하여 세트를 만드는 문제이다.

 

1) 햄버거와 음료의 초기값은 가장 큰 값인 2000원으로 설정

2) 햄버거 3종류 값을 받고 가장 작은 값을 선택

3) 음료 2종류 값을 받고 가장 작은 값을 선택

4) 세트 계산: 햄버거 + 음료 - 50

 

#include <iostream>
using namespace std;

int main()
{
    int price, burger, beverage;

    burger = 2000;
    for (int i = 0; i < 3; i++)
    {
        cin >> price;
        if (price < burger)
            burger = price;
    }
    
    beverage = 2000;
    for (int i = 0; i < 2; i++)
    {
        cin >> price;
        if (price < beverage)
            beverage = price;
    }

    cout << burger + beverage - 50;
    return 0;
}

- 메모리: 2020 KB

- 시간: 0 ms

- 코드 길이: 434 B

 

값을 한 번에 입력 받은 뒤, 직접 비교해주는 함수를 생성하여 (#define) 비교해주거나

내장 함수 min (#include <algorithm>)을 사용하여 비교해주는 방법도 있다.

 

#include <iostream>
using namespace std;

#define m(x, y) ((x < y) ? x : y)

int main()
{
    int burg1, burg2, burg3;
    int bev1, bev2;

    cin >> burg1 >> burg2 >> burg3 >> bev1 >> bev2;

    cout << m(m(burg1, burg2), burg3) + m(bev1, bev2) - 50;
    return 0;
}

- 메모리: 2020 KB

- 시간: 0 ms

- 코드 길이: 268 B

 

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

int main()
{
    int burg1, burg2, burg3;
    int bev1, bev2;

    cin >> burg1 >> burg2 >> burg3 >> bev1 >> bev2;

    cout << min(min(burg1, burg2), burg3) + min(bev1, bev2) - 50;
    return 0;
}

- 메모리: 2020 KB

- 시간: 0 ms

- 코드 길이: 260 B

'Algorithm > BackJoon' 카테고리의 다른 글

1920번: 수 찾기  (0) 2023.09.09
10866번: 덱  (0) 2023.09.08
2559번: 수열  (0) 2023.09.06
1373번: 2진수 8진수  (0) 2023.09.05
10820번: 문자열 분석  (0) 2023.09.04

댓글