내일배움캠프 AI/페어프로그래밍
[페어프로그래밍] 230502 3진법 뒤집기 | divmod int
생각하는 코댕이
2023. 5. 2. 15:02
728x90
페어프로그래밍 결과 코드
# 페어프로그래밍으로 제작한 코드
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