파이썬 알고리즘 170번 | [백준 1373번] 2진수 -> 8진수

Yunny.Log ·2022년 6월 10일
0

Algorithm

목록 보기
173/318
post-thumbnail

170. 2진수 -> 8진수

1) 어떤 전략(알고리즘)으로 해결?

2) 코딩 설명

  • 들어오는 수를 n=int(받기, 2) 로 하면 들어오는 2진수를 10진수로 변환 가능하다!
  • 그렇게 변환된 10진수를 oct를 통해 8진수로 변환

<내 풀이>


import sys
#n=list(sys.stdin.readline().rstrip())

# res=0
# tot = len(n)
# for i in range(len(n)//3) :
#     tar=(n[-3:])
#     #print(tar)
#     print
#     print(int(tar[0]))
#     print(int(tar[1]))
#     print(int(tar[2]))
#     res+=int(tar[0])*(4*(8^i))+int(tar[0])*(2*(8^i))+int(tar[0])*(1*(8^i))
#     print(res)
#     n=n[:len(n)-3]

# #마지막에 남은 건 길이 1 or 2
# if len(n)==1:
#     n[0]*(2^(len(n)-1))
# elif len(n)==2:
#     n[0]*(2^(len(n)-1)) + n[1]*(2^(len(n)-1))

# print(res)
n=int(sys.stdin.readline().rstrip(),2)
print(oct(n)[2:])

<반성 점>

<배운 점>

int('0b101010', 2)
42
int('0o52', 8)
42
int('0x2a', 16)

사실 int() 함수의 2번째 인자는 디폴트값이 10이기 때문에 생략했을 경우 10진수의 문자열이 숫자로 변환되는 것입니다.

bin(42)
'0b101010'
oct(42)
'0o52'
hex(42)
'0x2a'

0개의 댓글