문제:
이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.
X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.
# 이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.
#
# X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.
# 1번 째 - 1
# 2번 째 - 2, 3
# 1/2 2/1
# 3번 째 - 4, 5, 6
# 3/1 2/2 1/3
# 4번 째 - 7, 8, 9, 10
# 1/4 2/3 3/2 4/1
# 5번 째 - 11, 12, 13, 14, 15
# 5/1 4/2 3/3 2/4 1/5
# 짝수 번호 째는 해당 번호가 분모에 해당되며 x+=1 / y-=1 이와 같은 순서가 된다
# 홀수 번호 째는 해당 번호가 분자에 해당되며 x-=1 / y +=1 와 같은 순서
x = int(input())
line_number = 0
count = 0
data_list = []
while line_number < x:
count += 1
line_number += count
# 요소를 출력하기 위해 data_list의 뒤에서 몇 번째인지 알기 위해 변수 선언
data = x - line_number
if count % 2 == 0: # 짝수 번호 일 때
for i in range(count):
data_list.append(f'{i + 1}/{count - i}')
# print('짝수 - ', data_list[data])
else: # 홀수 번호 일 때
for i in range(count):
data_list.append(f'{count - i}/{i + 1}')
# print('홀수 - ', data_list[data])
print(data_list[data - 1])
결과:
반응형
'백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 2480번 주사위 세개 (파이썬) (0) | 2022.08.15 |
---|---|
백준 알고리즘 1085번 직사각형에서 탈출 (파이썬) (0) | 2022.08.15 |
백준 알고리즘 1929번 소수 구하기 (파이썬) (0) | 2022.08.09 |
백준 알고리즘 10250번 ACM 호텔 (파이썬) (0) | 2022.08.08 |
백준 알고리즘 2869번 달팽이는 올라가고 싶다 (파이썬) (0) | 2022.08.05 |