https://www.acmicpc.net/problem/1193
1193번: 분수찾기
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
www.acmicpc.net
import javax.print.DocFlavor;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int x = Integer.parseInt(br.readLine());
int line=1;
while(x>line){
x-=line;
line++;
}
if(line % 2 == 0) System.out.println(x+"/"+(line-x+1));
else System.out.println(line-x+1+"/"+x);
}
}
첨에 수들을 대각선으로 보지 못하고 순서 규칙을 찾지 못해서 이게 뭔가 했다(..) 문제에서 지그재그라고 나와있었는데도 ㅎㅎ;
대각선 방향으로 분수들의 번호가 정해지는데 홀수번째 대각선은 밑에서 위로, 짝수번째 대각선은 위에서 아래로 간다.
대각선은 첫번째 대각선은 분수 하나, 두번째 대각선은 분수 두개 이렇게 증가하므로
while문을 돌며 입력받은 수에서 line(대각선)을 빼주며 대각선의 개수를 증가시키면 입력받은 x가 몇번째 대각선인지 알 수 있다.
대각선이 홀수번째 일때와 짝수번째 일때를 구분해 규칙을 찾아 분모와 분자를 구해주면 된다.
'ALGORITHM' 카테고리의 다른 글
[JAVA] 백준 15649번- N과 M(1) (0) | 2022.08.15 |
---|---|
[JAVA] 알고리즘 : DFS- 피보나치 재귀(메모이제이션) (0) | 2022.08.10 |
[JAVA] 알고리즘 : DFS- 팩토리얼 (0) | 2022.08.09 |
[JAVA] 백준 2292번- 벌집 (0) | 2022.08.09 |
[JAVA] 알고리즘 : DFS- 이진수 출력(재귀) (0) | 2022.08.08 |