728x90
반응형

단순 사칙연산 문제이다. 처음엔 이렇게 길게 구현해서 통과했다.

a, b = map(int, input().split())
li = [a+b, a-b, a*b]
m = max(li)
idx = li.index(m)
m = m if m > 0 else f'({m})'
a = a if a > 0 else f'({a})'
b = b if b > 0 else f'({b})'

if li.count(m) > 1:
    print('NIE')
elif idx == 0:
    print(f"{a}+{b}={m}")
elif idx == 1:
    print(f"{a}-{b}={m}")
elif idx == 2:
    print(f"{a}*{b}={m}")

통과하고 나서 람다와 딕셔너리를 사용해서 다시 구현해봤는데 틀렸다는 결과가 나온다.

위의 코드랑 다른 점이 없는 것 같은데 뭐가 틀린 건지 모르겠다.

a, b = map(int, input().split())
d = {a+b:'+', a-b:'-', a*b:'*'}
li = list(d.keys())
m = max(li)

if li.count(m) > 1:
    print('NIE')
else:
    f = lambda x: f"({x})" if x < 0 else x
    print(f"{f(a)}{d[m]}{f(b)}={f(m)}")
728x90
반응형

+ Recent posts