티스토리 뷰

반응형

문제 설명

파파 파스타 가게는 점심 추천 파스타와 생과일 주스 세트 메뉴가 인기가 좋다.

이 세트 메뉴를 주문하면 그 날의 3 종류의 파스타와 2 종류의 생과일 주스에서 하나씩 선택한다.

파스타와 생과일 쥬스의 가격 합계에서 10%를 더한 금액이 대금 된다.

어느 날의 파스타와 생과일 주스의 가격이 주어 졌을 때, 그 날 세트 메뉴의 대금의 최소값을 구하는 프로그램을 작성하라.

 

입력

입력은 5 행으로 이루어지며, 한 줄에 하나씩 양의 정수가 적혀있다.

1행의 정수는 첫 번째 파스타 가격이다.

2행의 정수는 두 번째 파스타 가격이다.

3행의 정수는 세 번째 파스타 가격이다.

4행의 정수는 첫 번째 생과일 쥬스의 가격이다.

5행의 정수는 두 번째 생과일 쥬스의 가격이다.

(모든 파스타와 생과일 쥬스의 가격은 100원 이상 2000원 이하이다.)

 

출력

그날 세트 메뉴의 최소 대금을 소수 첫째 자리까지 출력하시오.

입력 예시

800

700

900

198

330

출력 예시

987.8


문제 푼 방법

 

간단하게 조건문으로 최솟값 최소값 구해서 더해준 거에서 10으로 나누고 더해줄 생각 했음

#include <stdio.h>
#include<unistd.h>

int select(int a, int b, int c)
{
    if (a < b && a < c)
        return(a);
    if (b < a && b < c)
        return(b);
    if (c < a && c < b)
        return(c);
    else
    {
        if (a == b)
        return(a);
        if (a == c)
        return(a);
        if (b == c)
        return(c);
    }
}

int main(void)
{
	int p1, p2, p3, j1, j2, p, j;
	char x,y;
	float z;
	char str[2014];

	scanf("%d\n%d\n%d\n%d\n%d", &p1, &p2, &p3, &j1, &j2);
	p = select(p1, p2, p3);
	if (j1 >= j2)
	    j = j2;
	else
	    j = j1;
	
	z = (p + j) / 10.0f; // 이 부분은 아예 몰랐던 것
	z = z + p + j;
	printf("%0.1f", z);

}

배운 점 느낀 점

실수 단위까지 나누기하려면

10.0f 이런 식으로 사용해야 한다는 것을 배움

코딩 도장에서 배웠습니다. 링크 걸어둘게요.

또 이 글 쓰기 전에 보니까

저거를 int배열에 넣고 for문 돌려서 비교하는 방식으로 푸는 사람들도 있었음

링크

나는 for문을 쓸 수 없는 환경에서 배웠었어서 그런 사고가 안 닿았던 것 같음

저 방식으로도 한 번 다시 풀어봐야겠음.

그리고 아주 사소한 실수인 비교 연산자 ==를 =로 쓰는 걸로 틀렸었는데

진짜 좀 만 소흘히하고 사회화하면 바로 까먹는구나 싶었음

문제 푸는 거 재밌긴 하니까 앞으로도 꾸준히 풀면 좋을듯함

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함