백준 1193번: 분수찾기

📌 문제

백준 1193번: 분수찾기

📌 접근

👉 대각선을 그었을 때 대각선의 번호를 1, 2, 3... 이라고 한다면 1번 대각선까지의 분수는 1개, 2번 대각선까지의 분수는 3개... n번 대각선까지의 분수는 n(n+1)/2 개가 있을 것이다. (14는 5번 대각선 라인에 있을 것임)

👉 짝수 번 대각선 일 때는 위에서 아래로 세고, 홀수 번 대각선 일 때는 아래에서 위로 센다.

📌 코드

import sys
input = sys.stdin.readline

N = int(input())

# N이 몇번 line에 있는지 구한다.
# line 은 N이 존재하는 line넘버, sum_line은 전 line까지의 합
line = 0
sum_line = 0
while sum_line < N :
    line += 1
    sum_line += line

sum_line = sum_line - line

if line%2 == 1 :
    b = N - sum_line
    a = line - b + 1

    print(f"{a}/{b}")

elif line%2 == 0 :
    a = N - sum_line
    b = line - a + 1

    print(f"{a}/{b}")

좋은 웹페이지 즐겨찾기