[SW Expert Academy, SWEA 1928] Base64 Decoder (python)
Problem Solving/SWEA

[SW Expert Academy, SWEA 1928] Base64 Decoder (python)

728x90

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PR4DKAG0DFAUq&categoryId=AV5PR4DKAG0DFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=3

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.

728x90

라이브러리 사용 X

base64Encoding = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
                'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
                'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e',
                'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
                'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',
                'z', '0' ,'1', '2', '3', '4', '5', '6', '7', '8',
                '9', '+', '/']

T = int(input())

for test_case in range(1, T + 1):
    encoding_str = input()
    bin_str = ""

    #입력받은 문자열을 문자 하나씩 해당하는 값으로 바꿔준 후
    #6자리 2진수로 변환 후 bin_str 문자열에 추가
    for i in range(len(encoding_str)):
        bin_str += format(base64Encoding.index(encoding_str[i]), 'b').zfill(6)

    decoding_str = ""

    #bin_str에 저장되어 있는 2진수 문자열을 8자리씩 끊어 다시 10진수로 변환
    #변환된 10진수 수를 아스키 코드에 해당하는 문자로 변환 후 decoding_str 문자열에 추가
    for i in range(0, len(bin_str), 8):
       decoding_str += chr(int(bin_str[i:i+8], 2))

    print("#{} {}".format(test_case, decoding_str))

base64 라이브러리 사용

swea에서 문제 제출할 때는 이 라이브러리 사용이 안되는 것 같다.

from base64 import b64decode

T = int(input())

for test_case in range(1, T + 1):
    encoding_str = input()
    decoding_str = b64decode(encoding_str).decode('UTF-8')
    
    print("#{} {}".format(test_case, decoding_str))
728x90