개발로그필름

[백준] C 1193 분수 찾기 본문

coding test/백준

[백준] C 1193 분수 찾기

yuullog 2022. 11. 10. 21:43
728x90
반응형
SMALL

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

 

1193번: 분수찾기

첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.

www.acmicpc.net

 

1차적으로 문제를 읽고 규칙을 찾아내는데 시간이 많이 소요되었다.

규칙을 찾아도 찾은 규칙을 코드에 어떻게 녹여내야 하는지 시간이 오래 걸렸다.

각 행 별로 나오는 분수들을 쭉 적고 입력값이 몇 번째 행에 속하지 찾는다.

찾은 행에서도 몇 번째인지 구한다

짝수 일때는 역방향이고 홀수일 때는 순 방향이므로 각각의 경우의 수를 나눠서 생각한다

 

코드 풀이 
#include <stdio.h>

int main()
{
	int n, sum;
	int index = 0; // 몇번째 행인지
	scanf("%d", &n);

	// 행 구하기
	while (1)
	{
		index++;
		sum = index * (index + 1) / 2;
		if (n <= sum)
			break;
	}

	// 행에서 몇번째 값인지 구하기
	int num = n - (index - 1) * index / 2;

	// 짝수 행인지 홀수 행인지 판별
	if (index % 2 == 0)
	{
		printf("%d/%d", num, index - num + 1);
	}
	else
		printf("%d/%d", index - num + 1, num);
	return 0;
}
	

 
 
 
반응형
LIST
Comments