저번 문제들에서 관계 연산자와 논리 연산자들에 대해서 배웠는데요, 이번 문제에서는 이 두 연산자들을 같이 활용해보도록 하죠.
이번 문제는 if 문 단계의 4 번째, 상근날드(#5543)입니다. 햄버거 3개, 음료 2개의 값이 주어졌을 때 가장 싼 세트 메뉴의 가격을 구하는 프로그램을 작성해야 하는 문제인데요, 주의해야 할 점으로는 세트 메뉴는 50원을 할인해 준다고 하네요. 코드를 살펴봅시다!
#include <stdio.h>
int main(void) {
int a, b, c, d, e, burgerMin, drinkMin;
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
scanf("%d", &d);
scanf("%d", &e);
if(a < b && a < c)
burgerMin = a;
else if (b < a && b < c)
burgerMin = b;
else
burgerMin = c;
if (d < e)
drinkMin = d;
else
drinkMin = e;
printf("%d\n", burgerMin + drinkMin - 50);
return 0;
}
이번에는 코드가 좀 복잡하네요! 그래도 지금까지 배운 내용들을 잘 돌아보면 이해할 수 있을 겁니다. 우선은 입력받을 가격을 저장해 둘 변수들을 선언해 주었는데요, 이번에는 변수가 좀 많죠? 햄버거와 음료는 총 5개인데 burgerMin과 drinkMin 변수가 추가로 더 있습니다. 이 변수들은 나중에 논리 연산자와 관계 연산자를 사용해서 제일 싼 가격을 찾은 다음에 할당해 줄 겁니다.
if(a < b && a < c)
burgerMin = a;
else if (b < a && b < c)
burgerMin = b;
else
burgerMin = c;
if (d < e)
drinkMin = d;
else
drinkMin = e;
감이 오시죠? 그냥 각 경우의 수를 확인해 보면 됩니다. 제일 먼저 a가 b와 c보다 작은지 확인해 보고, 아니라면 b가 더 작은지 확인해 보고, 그것도 아니라면 제일 작은 수는 c가 되겠죠? 음료의 경우는 d가 e보다 작은지만 확인해 보면 되고요. 제일 싼 가격을 찾았다면 등호를 이용해서 각각 burgerMin과 drinkMin 변수에 값을 할당해 주면 됩니다. 이번 문제에서는 3 가지 경우만 비교해 보면 되기 때문에 이렇게 논리 연산자와 관계 연산자를 활용해서 제일 작은 수를 찾아낼 수 있습니다.
이제 제대로 작동하는지 확인해 보도록 합시다! 실행시킨 뒤 가격들을 입력해 주니 제일 싼 햄버거와 음료를 찾아낸 뒤 50원을 뺀 가격을 출력하네요.
자, 이제 백준 사이트로 돌아와서 언어를 C로 선택한 뒤 제출해 줍시다.
성공이네요!
'C 언어' 카테고리의 다른 글
백준으로 배우는 C 언어 14. 구구단 (4) | 2020.03.12 |
---|---|
백준으로 배우는 C 언어 13. 세 수 (1) | 2020.03.12 |
백준으로 배우는 C 언어 11. 윤년 (1) | 2020.03.10 |
백준으로 배우는 C 언어 10. 두 수 비교하기 (1) | 2020.03.10 |
백준으로 배우는 C 언어 09. 곱셈 (4) | 2020.03.09 |