본문 바로가기

백준 문제풀기/JAVA

[백준 1193 JAVA 자바] 분수찾기

지그재그 순서로 번호가 매겨집니다

 

 

 

 

특징은

같은대각선 줄 위에 있으면 분모+분자 의 합이 일정합니다

또한 순서는 1 3 6 10 15 이렇게 등차수열의 등차수열입니다

 

1. 입력된 숫자를 통해 분모가 어떤 숫자인지 알아내고

2. 분모의 를 찾아 낸 다음 그 분모 줄? 에서는 몇번째 인지 구해서

3. 위에서 아래로인지, 아래서 위로인지 구분한 후 출력하자

 

코드입니다

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int a = Integer.parseInt(st.nextToken());
        int i=1;
        
        while(true) {
        	if((i*(i+1)/2)>=a) {
        		break;
        	}
        	i += 1;
        }
        int n = a - ((i-1)*i)/2;       
        if (i%2==0) {
        	System.out.println(n+"/"+(i+1-n));
        }else {
        	System.out.println((i+1-n)+"/"+n);
        }
    }
}

while(true) 부분에서 

몇번재 대각선 줄에 위치해있는지 찾아내고

 

if(i%2 == 0) 부분에서

위 방향으로 증가인지

아래 방향으로 증가인지

구분해줍시다