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

+ Recent posts