Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준 1246번
- html
- 챗봇
- 가치규범의 공공외교
- 풀이
- 1
- N과 M
- hashing
- 이항계수
- 파이썬
- CSS
- 1141번
- Python
- 실버
- 해설
- 문제 풀이
- 주창형 공공외교
- 한반도평화와공공외교
- 백준 1487번
- 연산자 문제
- DP 알고리즘
- B-tree
- 백준 11050번
- 알고리즘
- BTREE
- 백준 14501번
- 해싱
- 풍선터뜨리기
- 0의 개수
- 백준
Archives
- Today
- Total
SunFly의 코딩 및 정보 블로그
[파이썬(Python)] 백준 3036번 : 링 본문
문제
상근이는 창고에서 링 N개를 발견했다. 상근이는 각각의 링이 앞에 있는 링과 뒤에 있는 링과 접하도록 바닥에 내려놓았다.
상근이는 첫 번째 링을 돌리기 시작했고, 나머지 링도 같이 돌아간다는 사실을 발견했다. 나머지 링은 첫 번째 링 보다 빠르게 돌아가기도 했고, 느리게 돌아가기도 했다. 이렇게 링을 돌리다 보니 첫 번째 링을 한 바퀴 돌리면, 나머지 링은 몇 바퀴 도는지 궁금해졌다.
링의 반지름이 주어진다. 이때, 첫 번째 링을 한 바퀴 돌리면, 나머지 링은 몇 바퀴 돌아가는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 링의 개수 N이 주어진다. (3 ≤ N ≤ 100)
다음 줄에는 링의 반지름이 상근이가 바닥에 놓은 순서대로 주어진다. 반지름은 1과 1000를 포함하는 사이의 자연수이다.
출력
출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력한다.
풀이
import sys def calc(x, y): # 최대공약수 구하기 x, y = max(x, y), min(x, y) if y == 0: return x else: return calc(y, x % y) def fraction(x, y): # 분모, 분자를 각각 구하기 num = calc(x, y) res = [] res1 = x // num res2 = y // num res.append(res1) # 분모 res.append(res2) # 분자 return res input = sys.stdin.readline N = int(input()) circle = [] circle = list(map(int, input().split())) radius1 = circle[0] for i in circle[1:]: res = fraction(radius1, i) print("{}/{}".format(res[0], res[1])) |
'백준(BaekJoon)' 카테고리의 다른 글
[파이썬(Python)] 백준 1676번 : 팩토리얼 0의 개수 (0) | 2022.02.26 |
---|---|
[파이썬(Python)] 백준 11050번 : 이항 계수 1 (0) | 2022.02.25 |
[파이썬(Python)] 백준 2609번 : 최대공약수와 최소공배수 (0) | 2022.02.25 |
[파이썬(Python)] 백준 1037번 : 약수 (0) | 2022.02.24 |
[파이썬(Python)] 백준 5086번 : 배수와 약수 (0) | 2022.02.24 |