반응형
문제
상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다. 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다.
햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다.
햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오.
입력
입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가격은 100원 이상, 2000원 이하이다.
출력
첫째 줄에 가장 싼 세트 메뉴의 가격을 출력한다.
출처
Olympiad > Japanese Olympiad in Informatics > Japanese Olympiad in Informatics Qualification Round > JOI 2012 예선 1번
먼저 틀린 코드를 보도록 하겠습니다.
#include<stdio.h>
int main(){
int a[5];
for(int i = 0 ; i < 5; i++){
scanf("%d",&a[i]);
}
int min = a[0];
int minn = a[3];
for(int i = 1 ; i < 3; i++){
if(min > a[i]);
min = a[i];
}
if(minn > a[4]);
minn = a[4];
printf("%d\n",min+minn-50);
}
음... 이렇게 봐서는 뭐가 틀린 것인지 잘 모르겠네요
아래는 정답코드입니다.
#include<stdio.h>
int main(){
int arr[5];
for(int i = 0 ; i < 5 ; i++){
scanf("%d",&arr[i]);
}
int min[2] = {arr[0],arr[3]};
for(int i = 1 ; i < 3; i++){
if(min[0] > arr[i])
min[0] = arr[i];
}
if(min[1] > arr[4])
min[1] = arr[4];
printf("%d\n",min[0]+min[1]-50);
}
그런데.. 5년 전의 저는 정말 코드를 대충 작성했다는 것이 팍팍 느껴지네요. 뭔가 먼지를 잘 모르겠어요!!
그래서 다시 작성해보도록 하겠습니다!
python 코드로 작성을 했고요!
burger = [int(input()) for i in range(3)]
drink = [int(input()) for i in range(2)]
print(min(burger) + min(drink) - 50)
훨씬 깔끔한 것 같습니다!
이상 다이어릿이었습니다!
반응형