250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

[알고리즘 트레이닝4] 백준 알고리즘 1193번 : 분수찾기 [JAVA] 본문

[Snow-ball]프로그래밍(컴퓨터)/Algorithm Training

[알고리즘 트레이닝4] 백준 알고리즘 1193번 : 분수찾기 [JAVA]

Snow-ball 2021. 6. 12. 12:14
반응형

DAY ONE 을 잊지말자!!

 

문제 : 


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


이와 같이 나열된 분수들을 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.

X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.

 

 

입력 :
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.

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

 

 

 

코드 : 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.Scanner;
 
public class Argorithm_1193 {
    public static void main(String[] args) {
 
        Scanner scan = new Scanner(System.in);
        int choiceNum = scan.nextInt();
        int tmp = 0, divisor = 0, dividend = 0;
 
        for (int i = 1; ; i++) {
            System.out.println("For > i :: " + i);
            if (choiceNum > tmp && tmp + i >= choiceNum){ // tmp 3, i =3
                System.out.println("choiceNum :: " + choiceNum);
                System.out.println("tmp :: " + tmp);
                System.out.println("i :: " + i);
                if (i % 2 == 0) {
                    divisor = i + 1 - (choiceNum - tmp); // 1
                    dividend = choiceNum - tmp; // 2
                }
                else {
                    divisor = choiceNum - tmp;
                    dividend = i + 1 - (choiceNum - tmp);
                }
                break;
            }
            tmp += i;
            System.out.println("break 밑에 tmp : " + tmp);
        }
        System.out.println(dividend + "/" + divisor);
    }
}
 
cs

 

 

 

 

 

 

 

 

 

베타존 : 네이버쇼핑 스마트스토어

나를 꾸미다 - 인테리어소품 베타존

smartstore.naver.com

 

반응형
Comments