본문 바로가기
Algorithm(CodeTree, Python)/완전탐색1

[코드트리 자리 수 단위로 완전탐색] 이상한 진수 2 python

by kurooru 2022. 11. 7.
# 입력
a = input()

# 함수들
# calc(num_list)
def calc(num_list):
    # curr_sum
    curr_sum = 0
    # num_list의 길이(제곱 시작의 길이 구하기)
    start_num = len(num_list) - 1
    # 계산
    for num in num_list:
        # 1이라면
        if num == 1:
            # 제곱하여 추가
            curr_sum += 2 ** start_num
            # start_num 내려주기
            start_num -= 1
        # 0이라면
        else:
            # start_num 내려주기
            start_num -= 1
    # 반환
    return curr_sum

# 설계
# 리스트로 관리
a_list = []
for i in a:
    a_list.append(int(i))

# max_num
max_num = 0

# 하나씩 바꿔보기
for i in range(len(a)):
    # 1이면
    if a_list[i] == 1:
        # 0으로 바꿔줌
        a_list[i] = 0
        # 최댓값 갱신
        max_num = max(max_num, calc(a_list))
        # 다시 돌려놓기
        a_list[i] = 1
        
    # 0이면
    else:
        # 1로 바꿔줌
        a_list[i] = 1
        # 최댓값 갱신
        max_num = max(max_num, calc(a_list))
        # 다시 돌려놓기
        a_list[i] = 0
        
# 출력
print(max_num)