C#

백준 C# 10250 문제 풀이

psb08 2024. 9. 15. 15:38
728x90

문제 링크 : https://www.acmicpc.net/problem/10250

 

백준 브론즈 3 문제 입니다.

 

내 코드

int _num = int.Parse(Console.ReadLine());

for (int i = 0; i < _num; i++)
{
    int[] _split = Console.ReadLine().Split().Select(x => int.Parse(x)).ToArray();
    int roomX = ((_split[2] + _split[0]) % _split[0]) == 0 ? _split[0] : ((_split[2] + _split[0]) % _split[0]);
    int roomY = (int)Math.Ceiling(_split[2] / (float)_split[0]);
    Console.WriteLine("{0:#}{1:0#}", roomX, roomY);
}

 

 

코드 풀이 해석 내용

 

int _num = int.Parse(Console.ReadLine());

입력한 값을 정수로 변환하여 _num에 저장합니다.

나중에 이 값은 반복문의 횟수를 나타냅니다.

 

for (int i = 0; i < _num; i++)

_num의 값만큼 반복하는 루트를 시작합니다.

 

int[] _split = Console.ReadLine().Split().Select(x => int.Parse(x)).ToArray();

입력받은 한 줄의 문자열을 공백을 기준으로 나눕니다.

각 부분을 정수로 변환하고 배열 _split에 저장합니다.

_split[0]은 방의 열 수 (가로)를, _split[1]은 방의 행 수 (세로)를, _split[2]는 손님 수를 나타냅니다.

 

int roomX = ((_split[2] + _split[0]) % _split[0]) == 0 ? _split[0] : ((_split[2] + _split[0]) % _split[0]);

손님 수와 방의 열 수를 이용하여 X축 방 번호를 계산합니다.

방 번호는 손님 수를 열 수로 나눈 나머지입니다.

나머지가 0이면 마지막이라는 뜻이므로 _split[0]을 사용했습니다.

 

int roomY = (int)Math.Ceiling(_split[2] / (float)_split[0]);

손님 수를 열 수로 나눈 후 올림하여 Y축 방 번호를 계산합니다.

손님 수가 몇 개의 열을 차지하는지를 나타내고 있습니다.

 

Console.WriteLine("{0:#}{1:0#}", roomX, roomY);

결과를 출력합니다.

{0 : #}는 X축 방 번호를 출력합니다.

{1:0#}는 Y축 방 번호를 출력합니다.

 

 

실행 결과

실행 결과

728x90

'C#' 카테고리의 다른 글

백준 C# 8958 문제 풀이  (0) 2024.09.15
백준 C# 2920 문제 풀이  (0) 2024.09.15
백준 C# 2231 문제 풀이  (0) 2024.09.13
백준 C# 31403 문제 풀이  (0) 2024.09.13
백준 C# 2587 문제 풀이  (0) 2024.09.13