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이 몇번째에 위치하는지 알 수 있는데 왜 그렇지
다시 또 봐야겠다
'Back-end > 백준(python)' 카테고리의 다른 글
[백준/python] 1085 직사각형에서탈출: min(), abs() (0) | 2023.10.25 |
---|---|
[백준/python] 2869 달팽이는올라가고싶다: (0) | 2023.10.25 |
[백준/python] 2292 벌집: 먼저 규칙을 찾고 어떻게 풀어낼 지 생각하는 문제 (0) | 2023.10.25 |
[백준/python] 11005 진법 변환 2: 문자열 결합에서의 +연산 (0) | 2023.10.25 |
[백준/python] 2745 진법변환: B진법->10진법 변환하기/ 문자열, reversed객체, join함수 (1) | 2023.10.25 |