Saffy오픈톡방 가입 문제

draidev·2022년 2월 15일
0

문제

5<정수<127인 정수에서 이진수로 바꿨을때 1이 가장 많은 최소값을 정수로 두 번 입력하라.


그냥 단순히 머리로만 생각했을때는

2^7 = 128 = 10000000(2진수)

126 = 1111110(2진수) -> 즉 이진수일 때 1이 6개 들어간 가장 작은 값을 찾습니다.

그럼 111111(2진수)가 답인데, 64 = 1000000(이진수)에서 1을 뺀게 답이므로 63을 두 번 입력한 6363이 정답입니다.

코드

이를 코딩으로 해봤습니다.

num = [list(bin(i)) for i in range(6,127)]

count = 0
max = 0
resultStr = ''

for i in range(121):
    for j in range(len(num[i])):
        if num[i][j] == '1':
            count += 1
    if max < count:
        max = count
        resultStr = num[i]
    count = 0

resultInt = "".join(resultStr)
print(int(resultInt,2))

출력>

profile
I trust myself.

0개의 댓글

관련 채용 정보