백준|1193번|분수찾기

README·2022년 7월 31일
0

파이썬 PS풀이

목록 보기
18/136

문제설명
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="")

후기
코드는 복잡하지 않지만 알고리즘을 찾는데 다소 시간이 오래 걸렸고 지그재그로 간다는 점을 생각하지 못하면서 시간을 또 많이 썼습니다. 앞으로는 좀 더 문제를 제대로 이해하고 정교한 알고리즘을 찾을 수 있도록 노력해야할 것 같습니다.

profile
INTP 개발자 지망생

0개의 댓글