곽로그

[백준 1193] 분수찾기 본문

알고리즘/백준

[백준 1193] 분수찾기

일도이동 2019. 4. 26. 11:44
반응형

 

 

1193번: 분수찾기

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

www.acmicpc.net

 

접근법

 처음에는 문제를 제대로 읽지 않고 1/1 1/2 2/1 1/3 2/2 3/1 이렇게 진행되는 거인줄 알았다. 근데 이게 홀수군과 짝수군인지에 따라 달라진다. 군이라는 말에서 보듯, 이 수열은 군수열이다. 

 

 이렇게 나열한다음 규칙을 찾아보면 된다. 1군의 분자 분모의 합은 2, 2군의 분자 분모의 합은 3, 3군의 분자 분모의 합은 4 ... 이런 규칙이 있고, 짝수항과 홀수항에 따라서 짝수항일 경우 분자가 1234 이렇게 변하고 홀수 항일 경우 분모가 1234 이렇게 변한다. 따라서 입력받은 N이 몇번째 군에 속하는지, 그리고 그 군에서 몇번째 항인지를 계산해주면 된다. 

 

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner in =new Scanner(System.in);
		int n=in.nextInt();
		int start=1;
		int sequence=0;
		int group=1;
		int up;
		int down;
		
		while(true) {
			if(n>=start) {
				sequence++;
				start+=sequence;
			}
			else {
				break;
			}
			group++;
			
		}
		if((group-1)%2!=0) {
			down= n-(start-sequence)+1;
			up=group-down ;
		}
		else {
			up= n-(start-sequence)+1;
			down=group-up ;
		}
		
		
		
		
		System.out.println(up+"/"+down);
		
		
		
	
		
	}

}

<

 

반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준 2839] 설탕배달  (0) 2019.05.03
[백준 1977] 완전제곱수  (0) 2019.05.03
[백준 2292] 벌집  (0) 2019.04.25
[백준 10039] 평균점수  (0) 2019.04.25
[백준 2448] 별찍기-11 (시간초과)  (0) 2019.04.24
Comments