문제이해
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
'알고리즘 > 백준알고리즘' 카테고리의 다른 글
[백준 알고리즘/Python3] 10250 ACM호텔 (0) | 2021.09.06 |
---|---|
[백준 알고리즘/Python3] 2869 달팽이는 올라가고 싶다. (0) | 2021.09.05 |
[백준 알고리즘/Python3] 2292 벌집 (0) | 2021.09.03 |
[백준 알고리즘/Python3] 1712 손익분기점 (0) | 2021.09.02 |
[백준 알고리즘/Python3] 1316 그룹 단어 체커 (0) | 2021.09.01 |