mun dev

[백준] 1193 분수찾기 자바(Java) 본문

알고리즘/백준

[백준] 1193 분수찾기 자바(Java)

mndev 2023. 5. 11. 11:34

문제설명

무한히 큰 배열에 다음과 같이 분수들이 적혀있다.

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)가 주어진다.

 

 

출력

첫째 줄에 분수를 출력한다.

 

 

통과한 코드

import java.util.*;
import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        Scanner sc=new Scanner(System.in);
        int t=sc.nextInt();
        int n=0;
        int top=1;
        int bot=1;
        int cnt=0;

        if(t==1){
            System.out.println("1/1");
        }else{
            while(cnt<t){
                n++;
                cnt=n*(n+1)/2; // 몇번 째 행인지
            }
            int num=t-(n-1)*n/2; // 몇번 째 값인지
            if(n%2==0){ //짝수행인 경우
                top=num;
                bot=n-num+1;
            }else{
                top=n-num+1;
                bot=num;
            }
            System.out.println(top+"/"+bot);
        }
    }
}