본문 바로가기

PS/수학7

1735번: 분수 합 파이썬 https://www.acmicpc.net/problem/1735  두 분수의 분자와 분모가 주어졌을 때, 이 두 분수의 합을 구하고, 그 결과를 기약분수 형태로 출력하는 문제이다.일단 분수의 합을 먼저 구한뒤 최대공약수로 나눠서 기약분수로 만들면 된다. 풀이import sysdef gcd(x, y): # 유클리드 호제법을 사용해 최대공약수(GCD) 구하기 while y > 0: x, y = y, x % y return x# 입력 받기num1, denom1 = map(int, sys.stdin.readline().split())num2, denom2 = map(int, sys.stdin.readline().split())# 두 분수의 합 구하기numerator_sum = nu.. 2024. 9. 4.
[백준] 13241번: 최소공배수 파이썬 https://www.acmicpc.net/problem/13241 유클리드 호제법을 사용하여 푸는 문제다.효율적으로 최소공약수를 구하는 방법은 유클리드 호제법을 사용하는 것이고, 이를 이용해 최소공배수도 간단히 계산할 수 있습니다. 유클리드 호제법 - 두 수 `x`와 `y`가 있을 때, `x`를 `y`로 나눈 나머지를 계속 구하면서 `y`가 0이 될 때까지 반복헌다. - 최종적으로 남은 `x`가 최대공약수가 된다. 최소 공배수 구하는 방법- 두 수의 곱을 최대 공약수로 나누면 최소 공배수가 나온다. 풀이import sysdef gcd(x, y): while y > 0: x, y = y, x%y return xdef lcm(x,y): return x * y // gcd(x,y)a, b = ma.. 2024. 9. 3.
[백준] 18110번: solved.ac 파이썬 https://www.acmicpc.net/problem/18110 18110번: solved.ac 5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다. www.acmicpc.net 간단한 문제라고 생각해서 바로 코드 짜서 돌렸더니 시 간 초 과 오잉? 시간복잡도도 괜찮은데 왜지? 이유는 input() 때문이었다. 입력으로 주어지는 숫자 개수가 10의5승.........짱많음 이런 경우엔 input()말고 sys.stdin.readline()을 써야 빠른 입력을 할 수 있다. 풀이 import math, sys n = int(sys.stdin.re.. 2024. 3. 2.