728x90

문제)

상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다. 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다.

햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다.

햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오.

 

입력)

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

출력)

첫째 줄에 가장 싼 세트 메뉴의 가격을 출력한다.

 

예제1

800 700 900 198 330
848

예제2

1999 1999 100 189 100
150

 


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

 

5543번: 상근날드

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

www.acmicpc.net

문제는 위 링크에서 볼 수 있습니다.

 

이 문제는 if문을 어떻게 구성하는지가 중요한 문제라고 생각이 듭니다.

그리고 놓치지 말아야 하는 문제의 핵심부분까지 챙겨야 합니다.

 

#include <stdio.h>

int main(void){
    int L,M,S;
    int coke, cider;
    int bs, ds;
    scanf("%d\n %d\n %d\n %d\n %d", &L, &M, &S, &coke, &cider);
    if(L>=M){
        bs=M;
        if(bs>=S){
            bs=S;
        }
    }
    else if(L<M){
        bs=L;
        if(bs>=S){
            bs=S;
        }
    }
    if(coke<cider){
        ds=coke;
    }
    else if(coke>=cider){
        ds=cider;
    }
    printf("%d", bs+ds-50);
}

푸는 방법은 크게 어렵지 않습니다.

버거부분 끼리 비교하고 음료끼리 비교하는 것이

중요합니다.

 

좀더 짧게 짤수도 있을지 모르겠지만

제가 푼 것은 경우의 수를 다 따진 것입니다.

pass 부분 빼고는 다 작성하였습니다.

 

비교해서 더 작은 값을 bs(burger set), ds(drink set)라고

구분을 지어주었고 여기 문제에서

버거와 음료합치고 50원을 할인해준다고 했으므로

이 과정은 printf에서 해 주었습니다.

 

이 문제는 if문, 즉 조건문만 따질 줄 안다면

쉽게 풀리는 문제라는 생각이 들었습니다.

 

 

728x90

+ Recent posts