[백준 1193번] 분수찾기
[백준 1193번] 분수 찾기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | package _1월_3주차; import java.util.Scanner; public class 백준_손수경_문제_1193 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x = sc.nextInt(); int n = 1; //분모 int m = 1; //분자 int cnt = 0; int temp = 1; //대각선 기준으로 몇 번째에 위치하는지를 구하기 위한 변수이다. //ex. 1/1 -> 1번쩨, 1/2, 2/1 -> 2번째, 3/1, 2/2, 1/3 -> 3번째,,, while (true) { cnt += temp; //cnt: 더해지는 방향이 바뀌는 시작점 if (cnt >= x) { break; } temp++; } //temp가 홀수이면 위로 변화, 짝수이면 아래로 변화 //cnt - x: 대각선 기준으로 규칙을 따르면서 반복될 수 있는 횟수. if (temp % 2 == 0) { for (int j = 0; j <= cnt - x; j++) { n = temp - j; m = j + 1; } } else { for (int j = 0; j <= cnt - x; j++) { m = temp - j; n = j + 1; } } System.out.println(n + "/" + m); } } | cs |
브론즈 1치고는 생각보다 어려웠다. while문을 통해서 출력해야될 분수의 위치를 알려주고 있다. cnt를 통해서 더해지는 방향을 알 수 있고, temp를 통해서 몇 번째 줄에 위치하고 있는 분수인지를 알 수 있다.
댓글남기기