평범한 고딩 네트워크 공부일기
Nefus - Python [Codeup 1610, 1620, 수학문제] 본문
Codeup - 1610
이 문제는 문자열을 입력 받고 이후에 시작 위치와 글자 개수를 입력 받아서 그 만큼 문자열을 출력하는 문제입니다.
def mysubstr(a, b, c):
return a[b:b+c]
a = input()
b, c = map(int, input().split())
print(mysubstr(a, b, c))
a로 문자열을 입력 받고, b는 시작 위치, c는 글자 개수를 입력 받습니다. mysubstr에서 b부터 b+c 만큼 출력할 수 있게 코드를 작성하였습니다.
Codeup - 1620
이 문제는 어떤 수 n이 입력되면 각 자리 수를 계속 더하여 한 자릿수로 만들어 출력하는 문제입니다.
def add(n):
while n >= 10:
temp = 0
while n > 0:
temp += n % 10
n //= 10
n = temp
return a
n = int(input())
print(add(n))
n에 어떤 수를 입력받고 add 함수에 그 수를 준 뒤 n가 10보다 크거나 같을 때 반복하는 반복문 안에서 temp 안에 n%10을 진행하여 저장해주고 n은 10을 나누어 줍니다. 이후 n에 temp를 저장해주고 10보다 크거나 같다면 다시 반복하는 코드를 작성하였습니다.
import math
def f(x):
a = math.ceil((3 * x**2 - 4 * x + 7) / math.sqrt(x + 5))
b = math.floor((2 * x**2 + 3 * x - 5) / math.sqrt(x + 3))
c = round((5 * x - 2) / (x + 4), 2)
return a - b + c
# 주어진 x 값들에 대해 f(x) 계산
x1 = 3.5
x2 = -1.5
print(f"f({x1}) =", f(x1))
print(f"f({x2}) =", f(x2))
# 범위 내에서 f(x) = 0이 되는 x 값을 찾기
def find_zero(f, start, end, step=0.01):
x = start
while x <= end:
if abs(f(x)) < step:
return round(x, 2)
x += step
return None
x_zero = find_zero(f, -10, 10)
print(x_zero)
함수 f는 주어진 식에 따라 계산을 합니다.
x1 = 3.5, x2 = -1.5라는 값에 대해 함수 f(x)를 각각 계산하고 그 결과를 출력합니다.
함수 find_zero는 주어진 범위 [start, end]에서 함수 f(x)가 0에 가까운 값을 갖는 x를 찾습니다. 여기서 start는 탐색을 시작할 x 값이고, end는 탐색을 끝낼 x값, step은 x 값을 얼마나 세밀하게 증가시킬지를 결정하는 값입니다.
x_zero에 find_zero(f, -10, 10)를 호출하여 f(x) = 0이 되는 x값을 찾습니다.
'Nefus > Python' 카테고리의 다른 글
Nefus - Python [BOJ 20920, 10809] (1) | 2024.08.30 |
---|---|
Nefus - Python [Codeup 6067, 6068] (0) | 2024.08.23 |