1193 분수찾기
본문 바로가기
알고리즘 모음집/New 알고리즘

1193 분수찾기

by KyeongMin 2020. 8. 24.
728x90
반응형

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

 

1193번: 분수찾기

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

www.acmicpc.net

#include<stdio.h>
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main(void) {
	//1 1
	//2 2
	//3 3 
	//4 4
	//홀수일때 1부터
	//짤수일때 그 수부터
	//14일때
	//13 1
	//11 2
	//8 3
	//4 4
// 일단 빼고 남은 것에서 계산해서 산출하기
	long long int X;
	cin >> X;
	int flag = 0;
	if (X == 1) {
		flag = 1;
	}

	int i = 1;//+1 더해서 사용해야하는 변수
	for (i = 1; i <= 100000; i++) {
		X -= i;
		if (X <=0) {//일단 최대한 근처로 가기
			X += i;
			break;
		}
	}
	if (i % 2 == 0) {//짝수

		//분자가 i
		int j = 1;
		for (; j < X; j++) {
			i--;
		}
		cout << j << '/' <<i << '\n';

	}
	else if(i%2==1) {//홀수

		//분모가 i
		int j = 1;
		for (; j <X; j++) {
			i--;
		}
		cout << i << '/' << j << '\n';
}
	return 0;
}

이문제를 풀다 보니 좀 정신 없게 풀이가 된것 같은데 여기서 포인트는

일단 어떤 방식으로 접근하나 이것이 중요합니다. 짝수와 홀수 인 포인트에서

분모가 1로 시작하는지 분자가 1로 시작하는지 포인트를 잡아야하고 

저는 일단 그 분모가 1 ,2, 3, 4, 5 또는 분자가 1,2,3,4,5로 시작하는 포인트를 찾기위해서

 

반복문을 통해 1-10만까지 빼면서 음수가 되는 지점을 포인트로 찾아서 남은 것 만큼

그냥 계산을 해서 구현을 했습니다. 물론 더 간단한 방법이 있습니다.

일단은 너무 피곤해서 구현력이 조금 저조한것 같은데 일단 이런식으로 풀 수도 있구나 생각해주세요.

 

728x90
반응형

'알고리즘 모음집 > New 알고리즘' 카테고리의 다른 글

16236 아기상어  (0) 2020.08.26
17822 원판 돌리기  (0) 2020.08.25
1181 단어 정렬  (0) 2020.08.24
1076 저항  (0) 2020.08.24
프로그래머스 k번째 수  (0) 2020.08.20

댓글