BaekJoon

기본 수학 1단계 10250

wny0320 2022. 10. 12. 22:36

백준 온라인 코딩 문제풀이

https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

 

코드 참고

https://replit.com/@wny0320

 

wny0320 (박 상운)

Run code live in your browser. Write and run code in 50+ languages online with Replit, a powerful IDE, compiler, & interpreter.

replit.com

 

10250번에 대해 다룸

 


10250

using System;
using System.Collections.Generic;
class Program
{
    static void Main(string[] args)
    {
        int tc = int.Parse(Console.ReadLine());
        List<int> result = new List<int>();
        for(int i = 0; i < tc; i++)
        {
            string[] Input = Console.ReadLine().Split();
            int H = int.Parse(Input[0]);
            int W = int.Parse(Input[1]);
            int N = int.Parse(Input[2]);
            int room;
            int floor;
            room = 1 + (N-1) / H;
            floor = N % H;
            if(floor == 0)
            {
                floor = H;
            }
            result.Add(floor * 100 + room);
        }
        for(int i = 0; i < tc; i++)
        {
            Console.WriteLine(result[i]);
        }
    }
}

room은 방의 뒷번호 YY, floor는 방의 앞 번호(층 수) XX를 의미함

 

room이 문제가 되던 것이 1+ N/H로 하여 손님이 들어온 번호 수가 층 수와 같다면 의도된 번호보다 크게 나옴

 

따라서 room 계산 값에 N-1로 바꿔주어 해결해 주었음

 

그리고 floor는 N % H지만 나머지가 없는 경우 나누어 떨어진 것이기 때문에 높이 H 와 같은 값을 주면 층 수를 알 수 있음

 

따라서 나온 값을 floor *100 + room 으로 리스트에 저장한 후 한번에 출력하였음

 

-문제 예시

첫 번째 손님은 101 호, 두 번째 손님은 201 호 등과 같이 배정한다. 그림 1 의 경우를 예로 들면, H = 6이므로 10 번째 손님은 402 호에 배정해야 함.

10번째 손님(N = 10)의 방번호는 (10%6)*100 + (1 + (10-1)/6)  = 2로 402호가 나오게 되는 것

 

다른 예시로 식을 안고치고 N%H와 1+N/H로만 계산하게 된다면 12번째 손님은 (12%6)*100 + (1 + 12/6) = 3이 나옴.

앞의 식을 고치게 되면 12%6 == 0 이므로 6이 들어가게 됨

뒤의 식을 고치면 1 + (1 + (12-1)/6) = 2가 나와서 정답인 602호실이 나오게 됨

-1을 하지 않은 경우 603호실로 오답이 나올 수 있음

 

'BaekJoon' 카테고리의 다른 글

기본 수학 1단계 10757  (0) 2022.10.21
기본 수학 1단계 2839  (0) 2022.10.20
기본 수학 1단계 2869  (0) 2022.10.10
기본 수학 1단계 2292  (0) 2022.10.06
기본 수학 1단계 1712  (0) 2022.10.05