[Python] 알고리즘/Silver

[4900] 7 더하기 (Python)

-Becca- 2021. 12. 1. 22:10

[문제]

https://www.acmicpc.net/problem/4900

 

4900번: 7 더하기

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 A+B=꼴이며, A와 B는 두 수 a와 b를 7 세그먼트 디스플레이 상에서의 코드로 표현한 값이다. (0 < a,b < a+b < 1,000,000,000) 마지막

www.acmicpc.net


알고리즘 분류는 구현, 문자열 입니다.

아래의 힌트를 참고하여 코드를 구하고, 3자리씩 끊어서 숫자를 알아내면 되는 문제입니다.


[코드]

import sys

code = {
    "063": 0,
    "010": 1,
    "093": 2,
    "079": 3,
    "106": 4,
    "103": 5,
    "119": 6,
    "011": 7,
    "127": 8,
    "107": 9,
}

code_rev = {v: k for k, v in code.items()}


def num(m):
    n = ""
    for i in range(0, len(m), 3):
        n += str(code[m[i : i + 3]])
    return int(n)


while True:
    N = sys.stdin.readline().rstrip()
    if N == "BYE":
        break

    sp = N.split("+")
    A = sp[0]
    B = sp[1][: len(sp[1]) - 1]

    A_num = num(A)
    B_num = num(B)
    C_num = str(A_num + B_num)

    C = ""
    for i in C_num:
        C += code_rev[int(i)]
    print(N + C)