int input = int.Parse(Console.ReadLine()!);
int bunmo = 1;
int bunja = 1;
int count = 1; //대각선 순서
int room = 1; //순번
//짝수일때 분모++ 분자--
//홀수일때 분모-- 분자++
//2 =count 3=1 4=2 5=3 6=4
while (room < input)
{
room = room + count + 1;
count++;
}
//짝수일때
if (count % 2 == 0)
{
bunja = count;
for (int i = 0; i < room - input; i++)
{
bunmo++;
bunja--;
}
}
//홀수일때
else
{
bunmo = count;
for (int i = 0; i < room - input; i++)
{
bunmo--;
bunja++;
}
}
count++;
Console.WriteLine($"{bunja}/{bunmo}");
// 1 23 456 78910
챗 gpt 최적화 코드
int input = int.Parse(Console.ReadLine()!); // 사용자로부터 입력 값을 받습니다.
int count = 1; // 대각선의 순서를 저장할 변수입니다.
int room = 1; // 방(순번)을 나타내는 변수입니다.
// 입력된 방 번호를 찾기 위한 반복문
while (room < input)
{
count++; // 다음 대각선 순서로 넘어갑니다.
room += count; // 방 번호를 다음 대각선의 시작 위치로 갱신합니다.
}
// 대각선 순서에 따라 분모와 분자를 계산
int difference = room - input;
int bunmo, bunja;
if (count % 2 == 0)
{
bunmo = 1 + difference;
bunja = count - difference;
}
else
{
bunmo = count - difference;
bunja = 1 + difference;
}
Console.WriteLine($"{bunja}/{bunmo}"); // 최종적으로 계산된 분자와 분모를 출력합니다.
'코딩 문제 풀이' 카테고리의 다른 글
백준 8958 OX퀴즈 (0) | 2024.08.17 |
---|---|
백준 2920 음계 (0) | 2024.08.17 |
백준 10250 ACM 호텔 (0) | 2024.08.17 |
백준 2903 - 중앙 이동 알기 (0) | 2024.08.16 |
백준 1002 - 터렛 (0) | 2024.08.14 |