반응형
이틀 간 이 문제와 씨름했으나... 결국 풀지 못하고 다른 분이 푸신 방법을 찾아보았다..
나는 분자와 분모를 증가 혹은 감소 시키는 방법으로 자꾸 풀려고 하다가 실패했는데, 대각선을 이용해서 푸는 방법이 있었다.
1.Scanner를 이용한 방법
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int X = sc.nextInt();
int cross=1;//대각선
int prev=0;//이전 대각선 합
while (true) {
if (X <= prev + cross) {
if (cross % 2 == 1) {//홀수
System.out.print((cross - (X - prev - 1)) + "/" + (X - prev));
break;
}
else {//짝수
System.out.print((X - prev) + "/" + (cross - (X - prev - 1)));
break;
}
} else {
prev += cross;
cross++;
}
}
sc.close();
}
}
2. BufferedReader를 이용한 방법
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 cross=1;//대각선
int prev=0;//이전 대각선 합
while (true) {
if (X <= prev + cross) {
if (cross % 2 == 1) {//홀수
System.out.print((cross - (X - prev - 1)) + "/" + (X - prev));
break;
}
else {//짝수
System.out.print((X - prev) + "/" + (cross - (X - prev - 1)));
break;
}
} else {
prev += cross;
cross++;
}
}
}
}
내 스스로 힘으로 풀고 싶었는데 그렇게 하지 못했던 점이 너무 아쉽고 분하다.
그리고 이런 멋진 해결 방법을 알려주신 출처 글쓴이 분께도 감사하다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 5086 - 배수와 약수 (JAVA/ 자바) (0) | 2024.04.01 |
---|---|
[백준] 2869 - 달팽이는 올라가고 싶다 (JAVA/ 자바) (0) | 2024.04.01 |
[백준] 2292 - 벌집 (JAVA/ 자바) (0) | 2024.03.24 |
[백준] 2903 - 중앙 이동 알고리즘 (JAVA/ 자바) (0) | 2024.03.23 |
[백준] 2720 - 세탁소 사장 동혁 (JAVA/ 자바) (0) | 2024.03.22 |