05의 개발 계발

[페어프로그래밍] 230502 3진법 뒤집기 | divmod int 본문

내일배움캠프 AI/페어프로그래밍

[페어프로그래밍] 230502 3진법 뒤집기 | divmod int

생각하는 코댕이 2023. 5. 2. 15:02
728x90

3진법 뒤집기


페어프로그래밍 결과 코드

# 페어프로그래밍으로 제작한 코드
def solution(n):
    #n을 3진법으로 변환 → divmod로 만들기
    #변환된 3진법을 뒤집기 → reverse ▶▶▶ += str(y)로 reverse 불필요!
    #3진법을 10진법으로 변환 → 간단히 자릿수별 곱 ▶▶▶ int(k,3)로 바로 10진수 정수로 변환
    #값 반환
    k = ""
    while n > 0:
        n,y=divmod(n, 3)
        k += str(y)
    return int(k, 3)

+ 테스트용 전체코드

더보기
import os
os.system("cls")

def solution(n):
    #n을 3진법으로 변환 → divmod로 만들기
    #변환된 3진법을 뒤집기 → reverse ▶▶▶ += str(y)로 reverse 불필요!
    #3진법을 10진법으로 변환 → 간단히 자릿수별 곱 ▶▶▶ int(k,3)로 바로 10진수 정수로 변환
    #값 반환
    k = ""
    while n > 0:
        n,y=divmod(n, 3)
        k += str(y)
    return int(k, 3)

######### 테스트공간 ##########

n1= 45
n2= 125

print("7",solution(n1))
print("229",solution(n2))

리팩토링 코드

# 리팩토링 | 변수명수정
def solution(n):
    #n을 3진법으로 변환 → divmod로 만들기
    #변환된 3진법을 뒤집기 → reverse ▶▶▶ += str(y)로 reverse 불필요!
    #3진법을 10진법으로 변환 → 간단히 자릿수별 곱 ▶▶▶ int(k,3)로 바로 10진수 정수로 변환
    #값 반환
    result = ""
    while n > 0:
        n,y=divmod(n, 3)
        result += str(y)
    return int(result, 3)

흠터레스팅 코드

# n>0 대신 n이 0일경우 False임을 사용, divmod 대신 %연산으로 나머지값을 str으로 추가하여 3진법변환
def solution(n):
    tmp = ''
    while n:
        tmp += str(n % 3)
        n = n // 3

    answer = int(tmp, 3)
    return answer

시사점 or 새로이 알게된 점

int(<data>,n)
-내장함수
-<data>를 n진수로 인식하여 10진수 정수로 변환 / n을 생략시 기본 10진수 정수로 변환

+int 내장함수 추가정보

더보기

<from GPT> 
파이썬에서 `int()` 함수는 정수형으로 변환하기 위해 사용됩니다. `int()` 함수는 문자열, 부동소수점 수, 2진수, 8진수, 10진수, 16진수 등 다양한 데이터 타입을 인자로 받아 정수형으로 변환합니다.

`int()` 함수는 기본적으로 인자로 받은 값을 10진수 정수로 변환합니다. 예를 들어, `int('123')`은 문자열 `'123'`을 10진수 정수 `123`으로 변환합니다.

`int()` 함수에 두 번째 인자를 추가하면 해당 진법으로 변환할 수 있습니다. 두 번째 인자는 변환하려는 값의 진법(base)을 나타냅니다. 예를 들어, `int('1010', 2)`는 2진수 문자열 `'1010'`을 10진수 정수 `10`으로 변환합니다. 마찬가지로, `int('A7', 16)`은 16진수 문자열 `'A7'`을 10진수 정수 `167`로 변환합니다.

또한, `int()` 함수는 부동소수점 수를 정수형으로 변환할 때도 사용됩니다. 이 경우, 소수점 이하의 값은 버려지고 정수부만 반환됩니다. 예를 들어, `int(3.14)`는 부동소수점 수 `3.14`를 정수형 `3`으로 변환합니다.

`int()` 함수는 예외를 발생시키는 경우도 있습니다. 예를 들어, `int('abc')`와 같이 정수로 변환할 수 없는 문자열을 입력하면 ValueError가 발생합니다.

728x90