๐Ÿ“ฆ Chango/๐Ÿฅ‘ BOJ ๋‹จ๊ณ„๋ณ„๋กœ ํ’€์–ด๋ณด๊ธฐ

[BOJ][C++] ๋ฐฑ์ค€ 1193๋ฒˆ : ๋ถ„์ˆ˜์ฐพ๊ธฐ

์„ ๋‹ฌ 2021. 10. 12. 00:13
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/1193

 

1193๋ฒˆ: ๋ถ„์ˆ˜์ฐพ๊ธฐ

์ฒซ์งธ ์ค„์— X(1 ≤ X ≤ 10,000,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

 

๋ฌธ์ œ

๋ฌดํ•œํžˆ ํฐ ๋ฐฐ์—ด์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„์ˆ˜๋“ค์ด ์ ํ˜€์žˆ๋‹ค.

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

์ด์™€ ๊ฐ™์ด ๋‚˜์—ด๋œ ๋ถ„์ˆ˜๋“ค์„ 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … ๊ณผ ๊ฐ™์€ ์ง€๊ทธ์žฌ๊ทธ ์ˆœ์„œ๋กœ ์ฐจ๋ก€๋Œ€๋กœ 1๋ฒˆ, 2๋ฒˆ, 3๋ฒˆ, 4๋ฒˆ, 5๋ฒˆ, … ๋ถ„์ˆ˜๋ผ๊ณ  ํ•˜์ž.

X๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, X๋ฒˆ์งธ ๋ถ„์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— X(1 ≤ X ≤ 10,000,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๋ถ„์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

#include <iostream>

using namespace std;

int main () {
    
    //์ž…๋ ฅ
    int n;
    cin >> n;
    
    //๊ณ„์‚ฐ
    int first = 1, group = 1;
    for(int i=1; true; i++){
        if(n < first){
            first -= i-1;
            group--;
            break;
        }
        first += i;
        group++;
    }
        
    //์ถœ๋ ฅ
    if(group % 2 == 0)
        cout << n-first+1 << "/" << group-n+first;
    else
        cout << group-n+first << "/" << n-first+1;
    
    
    return 0;
}

 

๋ฐ˜์‘ํ˜•