BOJ 1193번 분수찾기 문제

배열을 45도 회전시키면 아래와 같이 나온다.

1/1

1/2 2/1

3/1 2/2 1/3

1/4 2/3 3/2 4/1

5/1 4/2 3/3 2/4 1/5

1/6 2/5 3/4 4/3 5/2 6/1

분자 분모의 합이 1행에서 2, 2행에서 3, 3행에서 4, 4행에서 5..가 되고,

홀수행은 합-1부터 시작해서 1씩 감소한다.

짝수행은 1부터 시작해서 합-1까지 증가한다.

1193.cpp

#include <bits/stdc++.h>
#define MAX_ 10000
using namespace std;

int main() {
    int n;
    cin >> n;

    int i = 1;
    int s = 0;
    while (true) {
        if (n - i <= 0) {
            break;
        }
        n -= i;
        i++;
        s++;
    }

    if (s % 2 == 0) {
        cout << s + 2 - n << "/" << n;
    } else {
        cout << n << "/" << s + 2 - n;
    }
}

+ Recent posts