sm 기술 블로그

58. 1193(분수찾기) 본문

문제/백준_파이썬

58. 1193(분수찾기)

sm_hope 2022. 5. 28. 17:11
N = int(input())
cnt = 1

while(True):

    N -= cnt
    if(N <= 0):
        break
    cnt += 1
    # 입력 값이 어느 그룹에 있는지 확인함

i = N + cnt

if cnt % 2 == 0:
    print("{0}/{1}".format((cnt + N), ((cnt+1)-i)))
else:
    print("{1}/{0}".format((cnt + N), ((cnt+1)-i)))

    # 지그재그로 할당됨 -> 짝수 번째 그룹은 오름차순, 홀수는 내림차순

 

분수가 지그재그로 나열됨. 이를 엑셀로 통해서 나타내보면,

다음과 같이 나타낼 수 있다.

분수를 나열해 보았을 때,  분자와 분모의 합이 같은 것끼리 그룹을 이루고 있음을 알 수 있다.

코드 로직을 크게 보면 이렇다. 

 

1. 반복문으로 입력값이 어디그룹의 아이인지 알아낸다.

2. 지그재그로 인해 짝수 그룹이면 오름차순을, 홀수 그룹이면 내림차순으로 나타난다.

 

'문제 > 백준_파이썬' 카테고리의 다른 글

60. 10250(ACM 호텔)  (0) 2022.05.29
59. 2869 (달팽이는 올라가고 싶다)  (0) 2022.05.29
57. 2292(벌집)  (0) 2022.05.26
56. 1712(손익분기점)  (0) 2022.05.25
55. 1316 (그룹 단어 체커)  (0) 2022.05.25
Comments