์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step8] 1193 : ๋ถ„์ˆ˜์ฐพ๊ธฐ (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 16. 22:21

www.acmicpc.net/problem/1193

 

1193๋ฒˆ: ๋ถ„์ˆ˜์ฐพ๊ธฐ

์ฒซ์งธ ์ค„์— X(1 ≤ X ≤ 10,000,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net


๋ฌธ์ œ

๋ฌดํ•œํžˆ ํฐ ๋ฐฐ์—ด์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„์ˆ˜๋“ค์ด ์ ํ˜€์žˆ๋‹ค.

1/1 1/2 1/3 1/4 1/5
2/1 2/2 2/3 2/4
3/1 3/2 3/3
4/1 4/2
5/1

์ด์™€ ๊ฐ™์ด ๋‚˜์—ด๋œ ๋ถ„์ˆ˜๋“ค์„ 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> … ๊ณผ ๊ฐ™์€ ์ง€๊ทธ์žฌ๊ทธ ์ˆœ์„œ๋กœ ์ฐจ๋ก€๋Œ€๋กœ 1๋ฒˆ, 2๋ฒˆ, 3๋ฒˆ, 4๋ฒˆ, 5๋ฒˆ, … ๋ถ„์ˆ˜๋ผ๊ณ  ํ•˜์ž.

X๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, X๋ฒˆ์งธ ๋ถ„์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— X(1 ≤ X ≤ 10,000,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๋ถ„์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ

14

 

์˜ˆ์ œ ์ถœ๋ ฅ

2/4


ํ’€์ด

ํ•ด๋‹น ๋ฐฐ์—ด์€ ์ง€๊ทธ์žฌ๊ทธ ์ˆœ์„œ๋กœ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์—ฌ์ง€๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ฒซ๋ฒˆ์งธ ๋Œ€๊ฐ์„ ์— ํ•œ๊ฐœ, ๋‘๋ฒˆ์งธ ๋Œ€๊ฐ์„ ์— ๋‘๊ฐœ, n๋ฒˆ์งธ ๋Œ€๊ฐ์„ ์— n๊ฐœ์˜ ๋ถ„์ˆ˜๊ฐ€ ์œ„์น˜ํ•˜๊ฒŒ ๋œ๋‹ค. ๋˜ํ•œ ์ง์ˆ˜๋ฒˆ์งธ ๋Œ€๊ฐ์„ ์— ๋ถ„๋ชจ ๋‚ด๋ฆผ์ฐจ์ˆœ, ๋ถ„์ž ์˜ค๋ฆ„์ฐจ์ˆœ / ํ™€์ˆ˜๋ฒˆ์งธ ๋Œ€๊ฐ์„ ์— ๋ถ„๋ชจ ์˜ค๋ฆ„์ฐจ์ˆœ, ๋ถ„์ž ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ˆซ์ž๊ฐ€ ์ •ํ•ด์ง€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

1. ์ž…๋ ฅ๋ฐ›์€ x์™€ ๊ฐ™์€์ง€ ํ™•์ธํ•  xis, ๋ช‡๋ฒˆ์งธ ๋Œ€๊ฐ์„ ์ธ์ง€ ํ™•์ธํ•  n์„ 1๋กœ ์ดˆ๊ธฐํ™”

2. while๋ฌธ๊ณผ for๋ฌธ์€ xis๊ฐ€ x์™€ ๊ฐ™์„๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต, ํ•œ๋ฒˆ์— break

3. for๋ฌธ์€ n๋ฒˆ์งธ ๋Œ€๊ฐ์„ ์˜ ๋ถ„์ˆ˜ ๊ฐœ์ˆ˜๋งŒํผ(=n) ๋ฐ˜๋ณต. n์„ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ n์˜ ๋‚ด๋ถ€์—์„œ xis๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

4. x์™€ xis๊ฐ€ ๊ฐ™์•„์กŒ์„ ๋•Œ, n์ด ํ™€์ˆ˜์ธ์ง€ ๋ถ„์ˆ˜์ธ์ง€ ํŒ๋‹จํ•˜์—ฌ ๋ถ„๋ชจ ๋ถ„์ž ์ถœ๋ ฅ

 

import java.util.Scanner;

public class B1193 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int x = sc.nextInt();
		int xis = 1;
		int n = 1;
		
		Loop1 :
		while(true) {
			for(int i = 1; i <= n; i++) {
				if(x == xis) {
					if(n % 2 == 0) {
						System.out.println( i + "/" + (n-i+1) );
					} else {
						System.out.println( (n-i+1) + "/" + i );
					}
					break Loop1;
				}else {
					xis++;
				}
			}
			n++;
		}
	}
}