728x90
반응형
단계별로 풀어보기 - [8단계.기본 수학1] - 1193번 분수찾기
문제
문제링크
https://www.acmicpc.net/problem/1193
1193번: 분수찾기
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
www.acmicpc.net
풀이
분수 배열에서 i번째 대각선을 생각했을 때, i가 홀수인지, 짝수인지에 따라 경우를 나눠서 생각해보았다.
i가
홀수일 때: 위로 올라가는 방향↗. 올라갈수록 a감소, b증가
짝수일 때: 아래로 내려가는 방향↙. 내려갈수록 a증가, b감소
i를 증가시키는 for문 안에서 i가 짝수/홀수인지에 따라 for문 안에서 i번만큼 a와 b를 증가/감소시키도록 하였다.
CODE
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
int n = 1, a = 1, b = 1; // n번째 분수 a/b
for (int i = 1; i <= n; i++) {
if (i % 2 == 0) {
for (int j = 0; j < i; j++) {
if (n == x) break;
a++;
if (b != 1) b--;
n++;
// System.out.println(n+"번째- "+ "i:"+i + ", j:"+j+" "+ a+"/"+b);
}
}
else {
for (int j = 0; j < i; j++) {
if (n == x) break;
b++;
if (a != 1) a--;
n++;
// System.out.println(n+"번째- "+ "i:"+i + ", j:"+j+" "+ a+"/"+b);
}
}
}
System.out.println(a + "/" + b);
}
}
결과
문제를 풀면서 n번째 분수를 차례대로 출력하여 제대로 수행되고 있는지 확인하였다.
제출할 때는 주석처리!
728x90
반응형