문제설명
1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2-> 1/3처럼 지그재그로 분수의 번호를 매긴다고 할 때 입력받은 번호에 해당하는 분수를 출력하는 문제입니다.
작동 순서
1.찾을 번호를 입력받습니다.
2.count 변수에 +1,+2 식으로 숫자를 증가시켜서 입력받은 번호가 몇 번째 줄에 있는지 찾습니다.
3.입력받은 번호가 그 줄에서 몇 번째 순서인지 알아냅니다.
4.입력받은 번호가 짝수 줄에 있으면 분자는 순서, 분모는 줄+1-순서로 출력합니다.
5.입력받은 번호가 홀수 줄에 있으면 분자는 줄+1-순서, 분모는 순서로 출력합니다.
소스코드
n = int(input())
count = 0
i = 0
while n > count:
i += 1
count += i
num = i+1
order = i-(count-n)
if i % 2 == 0:
print(order, "/", num-order,sep="")
else:
print(num-order, "/", order, sep="")
후기
코드는 복잡하지 않지만 알고리즘을 찾는데 다소 시간이 오래 걸렸고 지그재그로 간다는 점을 생각하지 못하면서 시간을 또 많이 썼습니다. 앞으로는 좀 더 문제를 제대로 이해하고 정교한 알고리즘을 찾을 수 있도록 노력해야할 것 같습니다.