문제)
상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다. 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다.
햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다.
햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오.
입력)
입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가격은 100원 이상, 2000원 이하이다.
출력)
첫째 줄에 가장 싼 세트 메뉴의 가격을 출력한다.
예제1
800 700 900 198 330 |
848 |
예제2
1999 1999 100 189 100 |
150 |
https://www.acmicpc.net/problem/5543
문제는 위 링크에서 볼 수 있습니다.
이 문제는 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문, 즉 조건문만 따질 줄 안다면
쉽게 풀리는 문제라는 생각이 들었습니다.
'C language > Baekjoon' 카테고리의 다른 글
[C] 백준 문제풀이 2914: 저작권 (0) | 2021.12.30 |
---|---|
[C] 백준 2475 풀이: 검증수 (0) | 2021.12.28 |
[C] 백준 19698번 풀이: 헛간 청약 (0) | 2021.07.27 |
[C] 백준 10178번 풀이: 할로윈의 사탕 (0) | 2021.07.27 |
[C] 백준 2445번 풀이: 별찍기 -8 (0) | 2021.07.26 |