아이공의 AI 공부 도전기

[Baekjoon] 1193번 분수찾기 (C++, Python)

 

     

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

 

1193번: 분수찾기

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

www.acmicpc.net

 

 

c++

 

1개 : 1/1 (합 = 2)

2개 : 1/2, 2/1 (합 = 3)

3개 : 3/1, 2/2, 1/3 (합 = 4)

4개 : 1/4, 2/3, 3/2, 4/1 (합 = 5)

5개 : 5/1, 4/2, 3/3, 2/4, 1/5 (합 = 6)

...

 

 

방법 1 - 2020KB, 0ms, 240B

초기 시도

#include <iostream>
using namespace std;
int main() {      
    int n, t=0, i=1;
    cin >> n;    
    while(n > t){
		t += i;	
		i++;		
	}	
	if (i%2==0)	
		cout << (t-n)+1 << "/" << i-(t-n)-1;
	else
		cout << i-(t-n)-1 << "/" << (t-n)+1;
}

 

방법 2 - 1112KB, 0ms, 158B

 

#include<stdio.h>
int main() {
	int n,i;
	scanf("%d",&n);
	for(i=1;i<n;i++) {
		n-=i;
	}
	if(i%2==0) printf("%d/%d",n,i+1-n);
	else printf("%d/%d",i+1-n,n);
}

 

 

Python

 

방법 1

n=int(input())
i=1
while n>i:
  n-=i
  i+=1
if i%2==0: print(f"{n}/{i+1-n}")
else: print(f"{i-n+1}/{n}")

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading