[문제] / URL : https://www.acmicpc.net/problem/1173

 

1173번: 운동

첫째 줄에 다섯 정수 N, m, M, T, R이 주어진다.

www.acmicpc.net

[C# 코드]

 

해당 문제는 재귀 함수를 사용하여 구현하였다.

 

using System;

namespace baek1173
{
    class Program
    {
        static int GetExerciseTimeRecursive(int N, int X, int M, int T, int R, int m, int minTime, int exerciseTime)
        {
            if (M - m < T)
            {
                return -1;
            }

            else if (m > X)
            {
                return GetExerciseTimeRecursive(N, m, M, T, R, m, minTime, exerciseTime);
            }

            else if (exerciseTime == N)
            {
                return X <= M ? minTime : -1;

            }

            else if (X + T <= M)
            {
                return GetExerciseTimeRecursive(N, X + T, M, T, R, m, ++minTime, ++exerciseTime);
            }

            return GetExerciseTimeRecursive(N, X - R, M, T, R, m, ++minTime, exerciseTime);

        }

        static void Main(string[] args)
        {
            string[] line = Console.ReadLine().Split();

            int N = int.Parse(line[0]);
            int m = int.Parse(line[1]);
            int M = int.Parse(line[2]);
            int T = int.Parse(line[3]);
            int R = int.Parse(line[4]);

            int time = GetExerciseTimeRecursive(N, m, M, T, R, m, 0, 0);
            Console.WriteLine(time);
        }
    }
}

 

'알고리즘 문제 풀이' 카테고리의 다른 글

[프로그래머스] C# 음양 더하기  (0) 2021.07.23
[백준 알고리즘] C# 시험 점수 5596번  (0) 2021.07.23
[4344번] 평균은 넘겠지  (0) 2020.01.10
[3052번] 나머지  (0) 2020.01.07
[2920번] 음계  (0) 2020.01.06

+ Recent posts