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

[코드업(codeup)/C]코드업(codeup) 4816 : 전자레인지 C언어

by starfish22 2022. 2. 22.
728x90

▶문제 : 전자레인지 (codeup.kr)

 

전자레인지

3개의 시간조절용 버튼 $A$ $B$ $C$가 달린 전자레인 지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동 작시간에 더해진다. 버튼 $A, B, C$에 지정된

codeup.kr

 

▶코드 작성

#include <stdio.h>

int main()
{
    int t;
    scanf("%d", &t);

    if (t % 10 != 0) {//일의자리수가 존재할 때 맞출 수 없으므로 -1
        printf("-1");
        return 1;
    }

    int time[3] = {300, 60, 10};//A,B,C 버튼
    int cnt[3] = {0};

    for (int i = 0; i < 3; i++)//A버튼부터
    {
        if (time[i] <= t)//버튼 시간이 t초보다 작다면
        {
            cnt[i] = t / time[i];//버튼을 누르는 횟수
            t = t % time[i];//남은 시간(초)
        }
    }

    for (int i = 0; i < 3; i++) {
        printf("%d ", cnt[i]);
    }

    return 0;
}

 

▶해석

t를 입력받아서 10으로 나눈 나머지가 0이 아니라면 일의 자릿수가 있다는 것이므로 -1을 출력하고 종료한다.

time배열에 각각 A,B,C 버튼의 초를 입력하고, 반복문으로 time배열의 초가 t보다 작다면 버튼을 누를 수 있다는 의미이므로 cnt배열에 버튼을 누르는 횟수를 입력하였다.

t/time [i]으로 버튼을 누르는 횟수를 구하고, t% time [i]으로 버튼을 누르고 남은 시간을 구할 수 있다. 그렇게 남은 시간으로 다음 버튼을 누를 수 있는지 계속 반복하여 구하였다.

728x90

댓글