ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 06.27(8). 밤을 지내면서 // 쳇gpt 이용 설명 들어가면서 훈련
    TIL( Today I Learned) 2023. 6. 28. 03:16

    오랜만에 다시 코드 공부라 ^^  유클리드 호제법(알고리즘) 과 최대공약수 아는 줄 알았는데 .. ㅠㅠ 

    그래도 하나하나 따져가면서 하니 재미있네요 

    아래는 지난 일요일 스터디 중 기약분수 코딩을 다시 복습겸 완벽한 이해를 위해 다시 풀었습니다. 

    def solution(numer1, denom1, numer2, denom2):

        answer = []

        numer3 = numer1 * denom2 + numer2 * denom1

        denom3 = denom1 * denom2

     

        for i in range(denom3, 0, -1):

            if numer3 % i == 0 and denom3 % i == 0:

                gcd = i

                break

     

        reduced_numerator = numer3 // gcd

        reduced_denominator = denom3 // gcd

        answer = reduced_numerator, reduced_denominator

     

        return answer

     

    주어진 코드는 분수를 더하는 기능을 수행하는 solution 함수입니다.

    함수는 numer1, denom1, numer2, denom2라는 네 개의 매개변수를 받습니다. 각각은 더할 분수의 분자와 분모를 나타냅니다.

    아래에서 한 단계씩 코드를 설명해 드리겠습니다:

    1. numer3 = numer1 * denom2 + numer2 * denom1: numer1과 numer2를 각각 denom2와 denom1과 곱한 후, 두 결과를 더해서 numer3 변수에 저장합니다. 이는 분수를 더하는 연산을 수행하는 과정으로, 분자를 계산합니다.
    2. denom3 = denom1 * denom2: denom1과 denom2를 곱해서 denom3 변수에 저장합니다. 이는 분모를 계산합니다.
    3. for i in range(denom3, 0, -1): denom3부터 1까지 역순으로 범위를 순회하는 for 루프를 설정합니다.
    4. if numer3 % i == 0 and denom3 % i == 0: 현재 숫자 i가 numer3와 denom3 모두로 나누어 떨어지는지 확인합니다. 즉, i가 numer3와 denom3의 공약수인지를 판단합니다.
    5. gcd = i: 공약수가 발견되면, 해당 값을 gcd 변수에 할당합니다. 루프는 큰 값부터 작은 값까지 반복되므로, 처음 발견된 공약수가 최대공약수(GCD)가 됩니다.
    6. break: GCD가 찾아지면 break 문이 실행되어 루프가 종료됩니다. 최대공약수를 찾았기 때문에 남은 숫자들에 대한 순회는 불필요합니다.
    7. reduced_numerator = numer3 // gcd와 reduced_denominator = denom3 // gcd: numer3와 denom3를 GCD로 나누어 간소화된 분자와 분모를 계산합니다.
    8. answer = reduced_numerator, reduced_denominator: reduced_numerator와 reduced_denominator를 튜플로 묶어서 answer 변수에 할당합니다.
    9. return answer: answer 변수를 반환합니다. 이 변수는 간소화된 기약분수 형태로 분자와 분모가 저장된 튜플입니다.

    'TIL( Today I Learned)' 카테고리의 다른 글

    2023.6.30 금요일  (0) 2023.06.30
    2023.6.29.목요일  (0) 2023.06.29
    6.28.수요일 list, append, for 를 이용한 코딩 연습  (0) 2023.06.28
    2023.06.26  (0) 2023.06.26
    2023/6/25  (0) 2023.06.25
Designed by Tistory.