문제

참고한 코드
# X 입력받기
x = int(input())
# 짝수번째라인은 분자가 오름차순/분모가 내림차순
# 홀수번째라인은 분자가 내림차순/분모가 오름차순
line = 1
while x > line:
x -= line
line += 1
if line%2 == 0:
a = x
b = line-x+1
else:
a = line-x+1
b = x
print(a, '/', b, sep='')
> 후... 문제를 제대로 이해하는데도 시간이 걸렸다... 나는 왜 이해력이 딸리는 것인가...
> 참고한 블로그
https://deokkk9.tistory.com/11
[python 파이썬] 백준 1193번: 분수찾기
https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net X=int(input()) line=1 while X>line: X-=line line+=1 if line%2==0: a=X b=line-X+1..
deokkk9.tistory.com
코드 설명
x = int(input())
> X번째 분수를 추출하기 위한 값을 입력받는다.
line = 1
while x > line:
x -= line
line += 1
> 지그재그 순서의 첫 번째는 1/1이다. 표를 대각선으로 보게되면 분모가 1일때 하나, 2일때 2개, 3일 때 3개 이런식으로 보게 될 수 있습니다. 그 대각선 라인이 1씩 증가할때마다 그 값이 1씩 증가함을 보실수 있습니다.
> 그래서 line이라는 변수를 1로 설정했습니다.
> while문(반복문)을 사용하여 몇 번째 대각선인지 파악하기 위해서 line 을 빼주면서, 동시에 line은 1을 증가시켰습니다.
if line%2 == 0:
a = x
b = line-x+1
else:
a = line-x+1
b = x
> 표를 보게되면 대각선이 짝수 일때는 분자가 오름차순/분모가 내림차순이고, 홀수일때는, 분자가 내림차순/분모가 오름차순임을 알 수 있습니다.
> 그래서 line%2 ==0이면 짝수이므로, a(분자) 변수에는 x를 그대로, b(분모) 변수에는 대각선에 있는 분자 수(line)에 x를 빼주고 1을 추가로 더해주면서 알맞는 값을 추출하게 작성했습니다.
> 홀수는 짝수 반대로 a,b를 적용시켜주면 끝!!!
> 참.... 혼자할때는 보이지도 않은 길이... 어떻게 발견하시는지.....
> 나는야 코딩 길치 ㅜㅜ
'Coding > 백준' 카테고리의 다른 글
| [10250번] 기본 수학1 - ACM 호텔 with Python (0) | 2022.07.20 |
|---|---|
| [2869번] 기본 수학1 - 달팽이는 올라가고 싶다 with Python (0) | 2022.07.20 |
| [2292번] 기본 수학1 - 벌집 with Python (★) (0) | 2022.07.20 |
| [1712번] 기본 수학1 - 손익분기점 with Python (0) | 2022.07.20 |
| [1316번] 문자열 - 그룹 단어 체커 with Python(★) (0) | 2022.07.19 |