백준 - 1193번(분수찾기)
문제 출처: https://www.acmicpc.net/problem/1193
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int X = scanner.nextInt();
int temp = 1;
int x = 1; // 분자
int y = 1; // 분모
int count = 1;
while (temp < X) {
temp += ++count;
}
int start = temp - count + 1; // 해당 층의 시작 번호
int result = X - start + 1;
if (count % 2 == 0) { // 짝수층의 경우
for (int i = 1; i <= count; i++) {
x = i;
y = (count + 1 - i);
if (i == result) {
break;
}
}
} else { // 홀수층의 경우
for (int i = 1; i <= count; i++) {
x = (count + 1 - i);
y = i;
if (i == result) {
break;
}
}
}
System.out.println(x + "/" + y);
}
}
- 규칙성을 찾기가 조금 까다로웠다.
- 규칙성을 찾고 나니 구현은 크게 어렵지 않았다.
Author And Source
이 문제에 관하여(백준 - 1193번(분수찾기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ghc1124/백준-1193번분수찾기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)