https://www.acmicpc.net/problem/1193

 

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

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

www.acmicpc.net

 

 

 

 

 

๋ธŒ๋ก ์ฆˆ ๋ฌธ์ œ์ธ๋ฐ ์–ด๋ ต๊ฒŒ ํ’€์—ˆ๋‹ค... ์ฒ˜์Œ์—๋Š” ๊ทœ์น™์„ ์ฐพ์•„๋ณด๊ฒ ๋‹ค๊ณ  ๊ฐ ํ–‰๊ณผ ์—ด์„ ์ˆ˜์—ด๋กœ ์ƒ๊ฐํ•ด ๊ณต์ฐจ๋ฅผ ์ฐพ์•„๋ณด๊ธฐ๋„ ํ–ˆ์ง€๋งŒ, ์ˆ˜์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ์— ๋„ˆ๋ฌด ๋ณต์žกํ•ด ๋ณด์—ฌ์„œ ํฌ๊ธฐํ–ˆ๋‹ค. ๊ณ„์† ๊ทœ์น™์„ ์ฐพ์ง€ ๋ชปํ•˜๊ณ  ๋ฏธ๋ฃจ๊ณ  ์žˆ๋‹ค๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ๊ทœ์น™ ํžŒํŠธ๋ฅผ ๋“ฃ๊ณ   ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค! ๊ทผ๋ฐ ์ด๋งˆ์ €๋„ ์Šคํ„ฐ๋””์›์˜ ๋‹ค๋ฅธ ํ’€์ด์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ๋Š” ๋ณต์žกํ•˜๊ฒŒ ํ‘ผ ํŽธ์ด๋‹ค.

 

 

 

 

 

์ง€๊ทธ์žฌ๊ทธ๋กœ ๋ฐ˜๋ณต์ด ๋˜๋Š”๋ฐ, ๊ทธ ๋ฐ˜๋ณต๋˜๋Š” ํŒจํ„ด 4๊ฐ€์ง€๋ฅผ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ์ˆซ์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

โ†’ : ํ•œ ๋ฒˆ๋งŒ ์›€์ง์ธ๋‹ค.

โ†™ :  ์ฒ˜์Œ์—๋Š” 1๋ฒˆ, ๊ทธ ๋‹ค์Œ์—๋Š” 3๋ฒˆ, 5๋ฒˆ, .. ์›€์ง์ธ๋‹ค.

โ†“ : ํ•œ ๋ฒˆ๋งŒ ์›€์ง์ธ๋‹ค.

โ†— : ์ฒ˜์Œ์—๋Š” 2๋ฒˆ, ๊ทธ ๋‹ค์Œ์—๋Š” 4๋ฒˆ, 6๋ฒˆ, .. ์›€์ง์ธ๋‹ค.

 

์ฒ˜์Œ ์ขŒํ‘œ ์‹œ์ž‘์ ์„ (1, 1)๋กœ ์žก๊ณ , ์›€์ง์ผ ๋•Œ๋งˆ๋‹ค ๊ฐ ํŒจํ„ด๋ณ„๋กœ ์ขŒํ‘œ๊ฐ’์„ ++์ด๋‚˜ -- ํ•ด๊ฐ€๋ฉฐ ์ขŒํ‘œ๊ฐ’์„ ๊ณ„์‚ฐํ–ˆ๋‹ค.

โ†™์™€ โ†—๋ฅผ ์œ„ํ•ด ๋ฐ˜๋ณต ์นด์šดํŠธ๋ฅผ ๋‘์–ด ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ๊ธฐ์–ตํ•˜๋„๋ก ํ–ˆ๋‹ค.

 

 

 

 

 

์ฝ”๋“œ

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int X = sc.nextInt();
		
		int count =  1;
		int i = 1, j = 1;
		int c = 1; //โ†™, โ†— ๋ฐ˜๋ณต ์นด์šดํŠธ
		
		while(true) {
			if(count == X) break;
			
			//โ†’
			j++;
			count++;
			
			if(count == X) break;
			
			//โ†™
			for(int k = 0; k < c; k++) {
				i++;
				j--;
				count++;
				
				if(count == X) break;
			}
			if(count == X) break;
			c++;
			
			//โ†“
			i++;
			count++;
			
			if(count == X) break;
			
			//โ†—
			for(int k = 0; k < c; k++) {
				i--;
				j++;
				count++;
				
				if(count == X) break;
			}
			if(count == X) break;
			c++;
		}

		System.out.println(i + "/" + j);
	}

}

 

 

 

 

 

๊ฒฐ๊ณผ

giraffe_