ps:problems:boj:3036
링
ps | |
---|---|
링크 | acmicpc.net/… |
출처 | BOJ |
문제 번호 | 3036 |
문제명 | 링 |
레벨 | 실버 3 |
분류 |
기초 |
시간복잡도 | O(nlogm) |
인풋사이즈 | n<=100, m<=1000 |
사용한 언어 | Python |
제출기록 | 31312KB / 72ms |
최고기록 | 52ms |
해결날짜 | 2021/08/22 |
풀이
- 반지름은 원둘레랑 비례하니까 회전수의 비는 역수가 된다.
- A/B를 기약분수로 표현하기 위해서는 분자 분모의 최소 공약수를 구해서 나눠주면 된다.
- 최소공약수는 O(logm)에 구할수 있으므로 총 시간 복잡도는 O(nlogm)
코드
"""Solution code for "BOJ 3036. 링".
- Problem link: https://www.acmicpc.net/problem/3036
- Solution link: http://www.teferi.net/ps/problems/boj/3036
"""
import math
def main():
N = int(input()) # pylint: disable=unused-variable
radiuses = [int(x) for x in input().split()]
for rad in radiuses[1:]:
g = math.gcd(radiuses[0], rad)
numer, denom = radiuses[0] // g, rad // g
print(f'{numer}/{denom}')
if __name__ == '__main__':
main()
ps/problems/boj/3036.txt · 마지막으로 수정됨: 2021/08/22 15:35 저자 teferi
토론