평범한 고딩 네트워크 공부일기

Nefus - Python [Codeup 1610, 1620, 수학문제] 본문

Nefus/Python

Nefus - Python [Codeup 1610, 1620, 수학문제]

seokmin100 2024. 9. 3. 17:55

Codeup - 1610

https://codeup.kr/problem.php?id=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

https://codeup.kr/problem.php?id=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