참고 코드
백준 1193번 java 자바 분수찾기 [수학1]
하이고... 백준 문제 정주행 좀 꾸준히 하고 싶었는데 요새 너무 정신없이 살다보니 너무 오랜만에 작성하게 되었다. 사람이 이렇게까지 게을러지는구나 느끼고 있는 요즘이다. 아무튼 본론으로
hellodoor.tistory.com
우선 대각선 행마다 칸의 갯수가 있다는 것과, 각 행마다 대각선이 아래로 향하고 있는지 위로 향하고 있는지를 파악해야 한다.
세 번째 대각선 행을 보면 홀수 행이고 대각선 위 방향으로 진행이기 때문에 3/1 -> 2/2 -> 1/3 이 된다. 분자는 3에서 1로 감소 되고 분모는 1에서 3으로 증가하는 걸 알 수 있다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int i = 1; // 대각선 행
int sum = 0; // 해당 대각선 행까지 범위 안에 있는 칸의 수
int top = 1, bot = 1;
// 대각선 행과 칸의 수 구하기
while(true) {
sum += i;
// 만약 칸의 수가 전달 받은 숫자보다 크거나 같으면 break
if (N <= sum) {
break;
}
i++;
}
if (i % 2 == 0) { // 짝수 행이면 대각선 아래로 내려감
for(int j = 0; j <= sum - N; j++) {
top = i - j;
bot = j + 1;
}
} else {
for(int j = 0; j <= sum - N; j++) {
top = j + 1;
bot = i - j;
}
}
System.out.println(top + "/" + bot);
}
}
'Computer Science > Algorithm' 카테고리의 다른 글
[백준] 2839 - 설탕 배달 (Java) (0) | 2022.09.18 |
---|---|
[백준] 2869 - 달팽이는 올라가고 싶다 (Java) (0) | 2022.09.18 |
[JAVA] 알파벳 찾기 (0) | 2022.03.22 |
[JAVA] 한수 (0) | 2022.03.09 |
[JAVA] 셀프 넘버 (0) | 2022.03.09 |