몽-구
몽구의 우당탕탕 개발 공부
몽-구
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • PS (38)
      • 백준 (24)
      • 프로그래머스 (14)
    • Dev (58)
      • Kotlin (0)
      • Java (4)
      • Spring, SpringBoot (1)
      • C (8)
      • Python (10)
      • Dart (1)
      • 알고리즘 (7)
      • 자료구조 (3)
      • Git (1)
      • Linux (2)
      • VS Code (1)
      • 환경 설정 (8)
      • Conference (1)
      • 42Seoul (3)
      • Node.js (1)
      • ShellScript (1)
      • IntelliJ (0)
      • MacOS (2)
      • 기타 (3)
    • CS (1)
      • 데이터베이스 (1)
    • DS (4)
      • Coursera (4)
    • 리뷰 (1)
      • 제품 리뷰 (1)
    • 일상 (3)
      • 자동화 (1)
      • 목표 및 계획 (2)
      • 회고 (0)
    • 삶에 대한 태도 (1)
      • 유튜브를 보며 (1)

블로그 메뉴

  • GitHub

인기 글

반응형

태그

  • BOJ
  • Python
  • 파이썬
  • 백준온라인저지
  • 리눅스
  • Algorithm
  • sort
  • 백준
  • 백준알고리즘
  • 정렬
  • c언어
  • 코딩테스트
  • 알고리즘
  • 프로그래머스
  • Linux

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
몽-구

몽구의 우당탕탕 개발 공부

[파이썬/Python] 진법 변환 함수 - int( )
Dev/Python

[파이썬/Python] 진법 변환 함수 - int( )

2020. 2. 24. 19:03
반응형

프로그래머스 강의 <파이썬을 파이썬답게> 에서 숫자 num과 진법을 나타내는 base를 파라미터로 제공해줄 때, 10진법 숫자로 출력하라는 문제가 있었다. 나는 다음과 같은 코드로 짰다.

num, base = map(int, input().strip().split(' ')) # 프로그래머스 측에서 제공해주는 입력값을 받음

num = str(num)
length = len(num)
sum = 0

for i in range(length):
    sum = sum + int(num[i])*pow(base, length-i-1)
print(sum)

잘 굴러는 갔는데, python답지 못하다고 할 것이다. 그러나 어쩌나... 이렇게 밖에 짤 줄 모르는 나다. 근데 python 내의 내장 함수를 이용하는 코드를 보니 살짝 충격적이었다. python의 내장 함수에 대해 너무 모르고 있는 게 아닌가 생각이 들었다. <파이썬을 파이썬답게>에서 제시해주는 코드를 활용하면 다음과 같이 짤 수 있다.

num, base = map(int, input().strip().split(' ')) # 프로그래머스 측에서 제공해주는 입력값을 받음

print(int(str(num), base))

int( ) 함수를 썼더니 단 한 줄이면 충분했다. 이참에 int( ) 함수에 대해 정리해보자. 정리는 여기를 참고했다.

 

 

int( ) 함수

1. int(x) : 문자열 혹은 실수 형태의 x를 정수로 반환한다. x가 문자열일 경우 따옴표 혹은 큰따옴표 안에는 정수 형태의 숫자가 담겨있어야 하며, x가 실수일 경우 소수점 이하는 버린 후 반환한다.

# int함수의 인자가 문자열일 경우
>>> int('3')
3
>>> int('3.5')
Traceback (most recent call last):
  File "<pyshell#61>", line 1, in <module>
    int('3.5')
ValueError: invalid literal for int() with base 10: '3.5'

# int함수의 인자가 실수일 경우
>>> int(3.7)
3
>>> int(3.1)
3
>>> int(3.316983018690)
3

 

2. int(x, radix) : radix 진수로 표현된 문자열 x를 10진수로 변환 후 반환한다. 오늘 새롭게 안 내용이 내용이 이것이다.

>>> int('1332', 4)
126
>>> int('2729', 11)
3540
>>> int('CAB04', 15)
643729

여기서 주의할 점은 첫번째 인자가 무조건 문자열이어야 한다는 것이다.

 

 

Source :

1. 프로그래머스, <파이썬을 파이썬답게>

2. 위키독스, <점프 투 파이썬>

반응형
저작자표시

'Dev > Python' 카테고리의 다른 글

[파이썬/Python] 리스트의 정렬 방법 - sort함수와 sorted함수  (0) 2020.03.11
[파이썬/Python] 순열과 조합 (Permutation and Combination)  (0) 2020.03.10
[파이썬/Python] 재귀함수(Recursive function)와 메모이제이션(Memoization)  (2) 2020.03.02
[파이썬/Python] 리스트 안에서 반복문, Comprehension  (0) 2020.02.27
[파이썬/Python] divmod와 언패킹(unpacking)을 활용하여 몫과 나머지 구하기  (0) 2020.02.24
    'Dev/Python' 카테고리의 다른 글
    • [파이썬/Python] 순열과 조합 (Permutation and Combination)
    • [파이썬/Python] 재귀함수(Recursive function)와 메모이제이션(Memoization)
    • [파이썬/Python] 리스트 안에서 반복문, Comprehension
    • [파이썬/Python] divmod와 언패킹(unpacking)을 활용하여 몫과 나머지 구하기
    몽-구
    몽-구
    소망보단 목표를, 생각보단 실천을

    티스토리툴바