곽로그
[백준 1193] 분수찾기 본문
반응형
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