https://www.acmicpc.net/problem/1193
1193번: 분수찾기
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
www.acmicpc.net
저는 구현을 통해 문제를 해결하였습니다.
먼저 몇번째 대각선인지를 구하고 그 대각선의 합을 분모 분자로 나누는 방식으로 구현하였습니다.
그리고 해당 대각선이 홀수번째인지 짝수번째인지에 따라 열에서 시작하는지 행에서 시작하는지에 다르기 때문에 이부분까지 고려하여 문제를 해결하였습니다.
package BOJ.etc;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class BOJ_1193 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String result = cal(n);
System.out.println(result);
}
private static String cal(int n) {
int sum = 0;
int num = 1;
while(n > sum + num){
sum += num;
num++;
}
int a = (n - sum);
int b = num + 1 - a;
String result = a+"/"+b;
if(num % 2 != 0){
result = b+"/"+a;
}
return result;
}
}
'알고리즘' 카테고리의 다른 글
백준 1124번 언더프라임 (JAVA) (0) | 2023.09.21 |
---|---|
백준 1138번 한 줄로 서기 (JAVA) (0) | 2023.09.20 |
백준 14218번 그래프 탐색2 (JAVA) (0) | 2023.09.18 |
백준 1812번 사탕 (JAVA) (0) | 2023.09.17 |
백준 1213번 팰린드룸 만들기 (JAVA) (0) | 2023.09.16 |