본문 바로가기

C 언어

백준으로 배우는 C 언어 12. 상근날드

저번 문제들에서 관계 연산자와 논리 연산자들에 대해서 배웠는데요, 이번 문제에서는 이 두 연산자들을 같이 활용해보도록 하죠. 


 

백준으로 배우는 C 언어 10. 두 수 비교하기

백준의 단계별 풀어보기 1단계를 마치고 두 번째 단계입니다! 입출력과 사칙연산에서 프로그래밍에 대해 간단하게 맛을 봤으니 이제는 본격적으로 깊게 파고 들어가 봅시다! 프로그래밍을 할 때 제일 많이 사용되..

torotoblog.tistory.com

 

백준으로 배우는 C 언어 11. 윤년

저번 문제에서 관계 연산자에 대해서 배웠는데요, 이번 문제에서는 또 다른 연산자인 논리 연산자에 대해서 알려드리도록 하겠습니다. 논리 연산자는 논리곱(And), 논리합(Or), 그리고 부정(Not) 이렇게 세 가지..

torotoblog.tistory.com


이번 문제는 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개인데 burgerMindrinkMin 변수가 추가로 더 있습니다. 이 변수들은 나중에 논리 연산자와 관계 연산자를 사용해서 제일 싼 가격을 찾은 다음에 할당해 줄 겁니다.

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 언어 13. 세 수

백준 단계별 풀어보기 2 단계, if 문의 마지막 문제입니다! 사실 이번 문제는 저번 문제들에서 배운 논리 연산자와 관계 연산자를 조금만 응용하면 금방 만들 수 있지만 초보자는 쉽게 놓칠 수 있는 부분이 있어..

torotoblog.tistory.com