Adventure Time - Jake ★[백준/python] 1193 분수찾기: 규칙 찾아..
본문 바로가기
Back-end/백준(python)

★[백준/python] 1193 분수찾기: 규칙 찾아..

by bogyoi 2023. 10. 25.

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

1193번: 분수찾기

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

www.acmicpc.net

1) 1/1 ->앞에거는 1 뒤에거는 1

2,3) 1/2, 2/1 -> 앞에거는 1,2 뒤에거는 2,1

4,5,6) 3/1, 2/2, 1/3 -> 앞에거는 3,2,1 뒤에거는 1,2,3

7,8,9,10) 1/4, 2/3, 3/2, 4/1 ->앞에거는 1,2,3,4 뒤에거는 4,3,2,1

11,12,13,14,15) 5/1, 4/2, 3/3, 2/4, 1/5 ->앞에거는 5,4,3,2,1 뒤에거는 1,2,3,4,5

16,17,18,19,20,21) 1/6, 2/5, 3/4, 4/3, 5/2, 6/1 ->앞에거는 1,2,3,4,5,6 뒤에거는 6,5,4,3,2,1

. . .

와 같은 규칙을 발견했다.

홀수번째 줄은 앞에거가 내림차순으로, 뒤에거가 오름차순으로

짝수번째 줄은 앞에거가 오름차순으로, 뒤에거가 내림차순으로 출력 된다.

 

N=int(input())
cnt=1 #몇번째줄인지 저장할 변수

while(N>cnt):
  N-=cnt
  cnt+=1

if cnt%2==0:
  print(f'{N}/{cnt-N+1}')
else:
  print(f'{cnt-N+1}/{N}')
 

입력으로 뭐를 넣었을 때 출력이 어떻게 나와야 하는데 이걸 코드로 어떻게 작성하면 이렇게 출력이 될까

라는 것을 생각하며 코드를 작성했다

 

근데 좀 더 그려가며 생각해보는게 좋을 것 같다

cnt변수와 N의 변수의 상관관계,. 어떻게 변하는지 같은거

N-=cnt 를 하면 각 줄에서 N이 몇번째에 위치하는지 알 수 있는데 왜 그렇지

 

다시 또 봐야겠다