알고리즘/python
[python/파이썬] 백준 1193 분수찾기
ㅌㅇㄴ
2023. 1. 16. 23:57
반응형
[문제 출처]
https://www.acmicpc.net/problem/1193
1193번: 분수찾기
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
www.acmicpc.net
[문제 풀이]
처음에는 진행 방향이 지그재그가 아닌 일방향인 줄 알고 풀었다가 답이 잘못 나와서 당황했던 문제이다.
1,2,3,,으로 진행되는 순서가 지그재그이니 이 점을 주의해서 문제를 이해해야 한다.
분수의 값은 행의 값이 분자로 열의 값이 분모로 나타나 있다.
따라서 n번째 숫자가 어느 위치에 있는지 알 수 있다면 분수의 값을 알 수 있다.
line은 대각선으로 봤을 때 몇 번째 줄인 지를 나타내는 함수이고, end는 해당 line에서 가장 큰 수를 나타낸다.
while문으로 n이 end값보다 작은지 큰지를 비교하여 n이 몇 번째 line에 있는지 확인하고 end의 값과 n의 차이를 통해서
해당 line에 몇 번째에 위치했는지를 계산한다.
또한 짝수번째 줄인 지 홀수번째 줄인 지에 따라서 진행방향이 달라 분모와 분자의 값이 반대가 된다.
#1193
n = int(input())
line = 0
end = 0
while n > end:
line += 1
end += line
diff = end - n
if line % 2 == 0:
row = line - diff
col = diff + 1
else:
row = diff + 1
col = line - diff
print(str(row)+'/'+str(col))
반응형