[C#] 백준 10250번 ACM 호텔

2021. 12. 21. 22:18C#/[백준] 기본 수학1

문제

정답 코드 :

using System;

namespace _5
{
    class Program
    {
        static void Main(string[] args)
        {
            int T = Convert.ToInt32(Console.ReadLine());
            for (int i = 0; i < T; i++)
            {
                string input = Console.ReadLine();
                string[] inputData = input.Split(' ');
                double H = Convert.ToInt32(inputData[0]);
                double W = Convert.ToInt32(inputData[1]);
                double N = Convert.ToInt32(inputData[2]);

                double X = Math.Ceiling(N / H); //N이 10이면 1.6666 > 2
                double Y = N % H; //10 % 6 > 4
                string output;
                
                // H가 6일때 N이 6의 배수이면 Y가 0이다. 이말은 꼭대기층이란뜻 
                if (Y == 0) 
                    Y = H;
                if(X <= 9)
                    output = Y.ToString() + "0" + X.ToString();
                else
                    output = Y.ToString() + X.ToString();

                Console.WriteLine(output);
            }
        }
    }
}

H를 나눠서 몫과 나머지로 구별하는것이 중요하다

만약 예시가 6 12 10이 들어온다면 10/6 = 1 .XXX , 10%6 = 4다.  1.XX는 W에서 한줄을 다써서 두번째 줄이라는 의미이므로 올림해서 2가 된다.

이것을 보면 알겠지만 X= 1.XXX는 W를 의미하고 Y = 4는 H를 의미한다 즉 402호를 뜻한다.

double X = Math.Ceiling(N / H); //N이 10이면 1.6666 > 2
double Y = N % H; //10 % 6 > 4

 

그런데 이렇게 풀게되면 6번째손님은 X = 1이 되고 Y = 0이 된다. 즉 Y = 0이라는 말은 꼭대기층이란 말이므로 Y = H를 넣는다.

if (Y == 0) 
	Y = H;