일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준
- 다이나믹프로그래밍
- IF
- BFS
- 블록체인
- used to
- 전치사
- python
- 관계절
- 파이썬
- baekjoon
- 라이브 아카데미
- 백트래킹
- dfs
- 일상회화
- 영어
- 정렬
- 영어기초
- N-Queens
- 완전탐색
- Backtracking Algorithm
- 회화기초
- 영어회화
- 백트래킹 알고리즘
- Hyperledger Fabric
- 알고리즘
- 영어회와
- 영어 회화
- 라이브아카데미
- 회화
- Today
- Total
내 맴
[ BAEKJOON ] No. 1193 : 분수찾기 본문
문제 )
https://www.acmicpc.net/problem/1193
풀이 )
대각선이 1개의 line이라고 하면 line별로 분수 나열해보기
[ 1/1 ] → [ 1/2, 2/1 ] → [ 3/1, 2/2, 1/3 ] → [ 1/4, 2/3, 3/2, 4/1 ] → ....
이때, num = 해당하는 line에서 뒤 분수가 몇개 있는지를 의미
Ex) 3/1의 경우 → line=3, num=2
< 순서 >
1) line 구해주기
X - ( 1+2+3+....+n) → X가 0보다 작아질 때 까지
2) 이때,
1+2+3+....+n = sumline 이라고 하고 , n= line이 됨
( sumline - X )은 num이 된다
즉, 몇번째 줄=line , 몇번째 수인지 =sumline - X=num
Ex) X=7인 경우,
7-(1+2+3+4)해주면 0보다 작아진다.
그러므로 line=4, sumline=10이 되고
num=10-7=3이 된다
그러므로 4번째 줄 → [ 1/4, 2/3, 3/2, 4/1 ] 에서
뒤에있는 분수갯수가 3개이므로 7번째 분수는 1/4이 된다
Ex) X=5인 경우,
5-(1+2+3)해주면 0보다 작아진다
그러므로 line=3 , sumline=6
num= 6-5=1
그러므로 3번째 줄에서 → [ 3/1, 2/2, 1/3 ] 에서
뒤에 있는 분수갯수가 1개이므로 5번째 분수는 2/2가 된다
3)
If line=짝수면,
분자= line-num
분모=line+1-분자
else
분자=line+1-분모
분모=line-num
- python code
'Algorithm > Baekjoon 문제풀이' 카테고리의 다른 글
[ BAEKJOON ] No. 2581 : 소수 (0) | 2020.03.17 |
---|---|
[ BAEKJOON ] No. 1978 : 소수 찾기 (0) | 2020.03.16 |
[ 백준 ] 2869번 : 달팽이는 올라가고 싶다 (파이썬) (0) | 2020.03.12 |
[ 백준 ] 10250번 : ACM 호텔 (파이썬) (0) | 2020.03.11 |
[ 백준 ] 2775번 : 부녀회장이 될테야 (파이썬) (0) | 2020.03.10 |