본문 바로가기
코드업(codeup)/C

[코드업(codeup)/C]코드업(codeup) 3120 : 리모컨 C언어

by starfish22 2021. 11. 16.
728x90

▶문제 : 리모컨 (codeup.kr)

 

리모컨

현재 온도a 와 목표 온도b가 입력된다. ( 0 <= a , b <= 40 )

codeup.kr

 

▶코드 작성

#include <stdio.h>
#include <math.h>

int fuc(int n)
{
    int temp = abs(n - 10);//10으로 일단 빼보기
    if (temp > abs(n - 5)) temp = abs(n - 5);//10으로 뺄 때와 5로 뺄 때 비교
    if (temp > abs(n - 1)) temp = abs(n - 1);//5로 뺄 때와 1로 뺄 때 비교
    return temp;
}

int main()
{
    int a, b, temp, cnt = 0;

    scanf("%d %d", &a, &b);

    if (b < 0) temp = a + abs(b);//목표 온도가 음수일 때
    else temp = abs(a - b);//목표 온도가 양수일 때

    while (temp != 0)
    {
        temp = fuc(temp);//온도 조절
        cnt++;
    }

    printf("%d", cnt);

    return 0;
}

 

▶해석

온도 a와 온도 b의 차이를 구하기 위해 절댓값 abs를 이용하여 temp 저장하였다. 그러고 나서 while문을 이용하여 temp이 10,5,1 중 뺄셈을 했을 때 더 적은 결괏값을 temp으로 저장하였다. abs 절댓값 사용으로 temp은 음수로 내려갈 수 없다.

728x90

댓글