본문 바로가기

알고리즘/백준알고리즘

[백준 알고리즘/Python3] 1193 분수찾기

문제이해 

1=(1,1)  -1층

 

2=(1,2)   -2층

3=(2,1)   

 

4=(3,1)   -3층

5=(2,2)

6=(1,3)

 

7=(1,4)   -4층

8=(2,3)

9=(3,2)

10=(4,1)

 

11=(5,1)   -5층

12=(4,2)

13=(3,3)

14=(2,4)

15=(1,5)

...

 

각 순서대로 행렬의 을 만들어 놓습니다.

 

 

들어온 숫자에 1부터 1씩 증가시켜서 빼면 0이하인 숫자가 나옵니다.

 

0이하인 숫자가 나오기 전 루프가 들어온 숫자를 이라고 하겠습니다.

 

 

만약 층이 짝수라면 

0이하인 숫자가 나오기 전 결과값이 층에 남은 동 값이 x좌표가 되고 

y좌표는 {(층+1) - 결과}  가 됩니다.

 

x,y좌표의 총합은 각 층의 +1 입니다.

 

 

 

result = int(input())
count = 0
x=0
y=0

while(result > count):
    
    result =result - count
    floor = count + 1
    count +=1


#짝수면
if(floor%2 == 0):
    x = result
    y = (floor+1) - result
else:
    x = (floor+1) - result
    y = result 
print(str(x)+"/"+str(y))

 

while문에서 들어온 값이 1씩 증가하는 값보다 클때만 동작합니다.

 

안에서 숫자의 층을 정하고 층안에 속하는 동(=result)을 구합니다.

 

if문으로 층이 짝수인지 홀수인지 구분합니다.

 

짝수면 x가 동이 되고 y는 전체값에 동을 뺀값이 됩니다.

홀수면 x는 전체값에 동을 뺀값 y는 동이 됩니다.

 

 

728x90