
- 티어 : Silver 5
- 정답여부 :
오답- 알고리즘 유형 :
수학,구현- 시간 제한 :
0.5초
무한히 큰 배열에 다음과 같이 분수들이 적혀있다.

이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.
X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
첫째 줄에 분수를 출력한다.
1
1/1
2
1/2
3
2/1
4
3/1
5
2/2
6
1/3
7
1/4
8
2/3
9
3/2
14
2/4
입력받은 숫자에 분수를 추력하면 되는 수학 문제
일단 규칙을 알아야 한다.
첫줄 1은 1/1
두번째 2는 1/2 3은 2/1
세번째 4는 3/1 , 5는 2/2 6은 1/3
네번째 7은 1/4 8은 2/3 9는 3/2
여기서 규칙은 홀수라인은 분자가 +1 분모가 -1 짝수라인은 분자 -1 분모가 +1씩 되는 규칙이다.
1. 입력받은 숫자의 몇번쨰 라인인지 먼저 확인
2. 그 라인이 짝수이면 분모에 n을 넣어주고 line에 n을 빼서 1를 더해줌
3. 홀수 라인인 경우 반대로 진행
pythonn = int(input()) line = 1 while n > line: n -= line line += 1 if line % 2 == 0: a = n b = line-n+1 else: a = line-n+1 b = n print(a, '/', b, sep='')
사실 이 문제는 하루종일 봐도 코드를 못 쳐서 다른사람 풀이를 보고 이해를 하고 푼 문제이다 조금 더 간단한 풀이방식도 있어서 한번 가져옴!
pythonn = int(input()) i = 0 while n > 0: i += 1 n -= i if i % 2 ==0: print(f'{i+n}/{1-n}) else: print(f'{1-n}/{i+n})
https://sinabro95.tistory.com/170
https://longflash.tistory.com/685
나에게 이해의 도움을 주신 코드..ㅎㅎ