Algorithm/BOJ
[백준/1193] 분수찾기 (with 파이썬)
Potato potage
2022. 10. 21. 20:22
반응형
✔ 문제
✔ 풀이
n = int(input())
l = 1
while n > l:
n -= l
l += 1
if l % 2 == 0:
a = n
b = l - n + 1
else:
a = l - n + 1
b = n
print(a, '/', b, sep='')
✔ 후기
생각보다 더 어렵다.. 대각선끼리 묶어서 생각해야한다는 점이 키 포인트였던 것 같은데, 그걸 못 찾아서 계속 어떻게 풀어야하나 각 입력 숫자들 사이에서 규칙을 계속 찾고 있었다.
[1/1], [1/2, 2/1], [3/1, 2/2, 1/3], [4/1, 3/2, 2/3, 1/4] 이렇게 한 대각선에 각 분수들이 들어가게 된다.
while문을 돌면서 n이 몇번째 대각선에 들어가야하는지 알아야한다.
다음 if/else 문을 통해서 대각선의 짝.홀에 따라 분자와 분모의 대입을 구분하면 된다.
사실 한줄한줄 로직이 왜 저렇게 구현되는지는 아직까지도 잘 모르겠어서 다시 한 번 더 풀어봐야한다.
✔ 참고
https://deokkk9.tistory.com/11
[python 파이썬] 백준 1193번: 분수찾기
https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net X=int(input()) line=1 while X>line: X-=line line+=1 if line%2==0: a=X b=line-X+1..
deokkk9.tistory.com
반응형