๋ฌธ์ œ

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

์„ค๋ช…

์ด ๋ฌธ์ œ๋Š” ํฌ๊ฒŒ ์–ด๋ ต์ง€ ์•Š์•˜์œผ๋‚˜ ํ•˜๋‚˜ ๊ฑธ๋ฆฌ๋Š” ์ ์ด ์žˆ๋‹ค๋ฉด ์‹œ๊ฐ„์ œํ•œ์ด ์กฐ๊ธˆ ๋นก์„ธ๊ฒŒ ๊ฑธ๋ ค์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋‹คํ–‰ํžˆ๋„ for๋ฌธ์„ ์‚ฌ์šฉํ–ˆ์œผ๋‚˜ ์‹œ๊ฐ„์ œํ•œ์— ๊ฑธ๋ฆฌ์ง€๋Š” ์•Š์•„์„œ ๋งž์•˜๋‹ค. ๋‚œ ์ผ๋‹จ n์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ช‡๋ฒˆ์จฐ ๋ถ„์ˆ˜๋ฅผ ์ฐพ๋Š”๊ฒƒ์ธ์ง€ ์ž…๋ ฅ์„ ๋ฐ›์•˜๊ณ , ์ € ์‚ฌ์ง„์˜ ๋ถ„์ˆ˜ํ‘œ๋Š” ๋Œ€๊ฐ์„ ์œผ๋กœ ์ง€๊ทธ์žฌ๊ทธ๋กœ ์ˆœ์„œ๊ฐ€ ๋˜์–ด์žˆ๊ธฐ๋•Œ๋ฌธ์— ํ”ผ๋ผ๋ฏธ๋“œ์ฒ˜๋Ÿผ ๋จผ์ € 1 ๋‹จ, 2 ๋‹จ โ€ฆ ์„ ๊ตฌ๋ณ„ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™์•„์„œ line์ด๋ผ๋Š” ๋ณ€์ˆ˜์—๋Š” ๋‹จ์„, cut์ด๋ผ๋Š” ๋ณ€์ˆ˜์—๋Š” ๊ทธ ๋‹จ์˜ ๋งˆ์ง€๋ง‰ ์นธ์ด ๋ช‡๋ฒˆ์งธ ์ˆ˜์ธ์ง€ ์ ๊ฒŒ ํ•˜์˜€๋‹ค. ๋˜ tot ๋ณ€์ˆ˜์—๋Š” ๊ทธ ๋‹จ์˜ ๋ถ„์ž + ๋ถ„๋ชจ์˜ ๊ฐ’์„ ๋‹ด์•˜๋‹ค.(๋‹จ์ด ๊ฐ™์œผ๋ฉด ๋ถ„๋ชจ, ๋ถ„์ž์˜ ๊ฐ’๋„ ์ผ์ •ํ•˜๋ฏ€๋กœ) ๊ทธ๋ฆฌ๊ณ  ์ฐพ์œผ๋ ค๊ณ  ํ•˜๋Š” ๋ถ„์ˆ˜๊ฐ€ ํ•ด๋‹น ๋‹จ์˜ ๋งˆ์ง€๋ง‰ ๋ถ„์ˆ˜์™€ ์–ผ๋งˆ๋‚˜ ๋–จ์–ด์ ธ์žˆ๋Š”์ง€ ๊ณ„์‚ฐํ•˜๊ณ  ์„œ๋กœ์˜ ์ฐจ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ถ„์ˆ˜๋ฅผ ๊ตฌํ•˜๋„๋ก ํ•˜์˜€๋‹ค. ๋˜ ์ง€๊ทธ์žฌ๊ทธ๋กœ ๋‚ด๋ ค๊ฐ€๋Š” ๋ถ€๋ถ„์€ line๋ณ€์ˆ˜์˜ ๊ฐ’์ด ํ™€์ˆ˜๋ƒ, ์ง์ˆ˜๋ƒ์— ๋”ฐ๋ผ์„œ ์ •ํ•ด์ง€๋„๋ก ์กฐ๊ฑด๋ฌธ์„ ๋„ฃ์–ด์„œ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

์ฝ”๋“œ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int n=0,cut=0,line=0,tot=0;
	scanf("%d", &n);
	for (line = 0; cut < n; line++)
		cut += line;
	line -= 1;	
	tot = line + 1;
	//printf("%d", cut-n+1);
	if(line%2==0)
		printf("%d/%d", tot - (cut-n)-1, cut - n + 1);
	else
		printf("%d/%d", cut - n + 1, tot - (cut - n) - 1);
	return 0;
}