두 가지 방식으로 코드를 작성했다.
내용은 같은데, A 코드는 컴프리헨션을 사용했고 B 코드는 이중 for문으로 작성했다.
개인적으로 A 코드가 더 마음에 든다.
두 줄로 작성 했음에도 가독성이 더 낫다.
B 코드에서는 수 세기, 타입 변환 등 잡음이 많아서 어수선하다.
A 코드
# A 코드: 시간 68ms, 메모리 29200 KB
import sys
INPUT = sys.stdin.readline # 10+01-1+1
def solution(exp):
""" 주어진 식에 적절히 괄호를 쳐서 최소 값으로 계산하여 리턴한다.
"""
numbers = [sum(map(int, x1.split('+'))) for x1 in exp.split('-')]
return numbers[0] - sum(numbers[1:])
print(solution(INPUT()))
B 코드
# B코드 : 시간 72ms, 메모리 29200 KB
import sys
INPUT = sys.stdin.readline # 10+01-1+1
def solution():
""" 주어진 식에 적절히 괄호를 쳐서 최소 값으로 계산하여 리턴한다.
"""
exp = INPUT().split('-')
numbers = []
for x1 in exp:
x2 = x1.split('+')
count = 0
for num in x2:
count += int(num)
numbers.append(count)
return numbers[0] - sum(numbers[1:])
print(solution())
'코딩 테스트' 카테고리의 다른 글
[백준, 1261] 알고스팟 (BFS 가중치 주기: 메모리 초과 코드와 비교) (0) | 2021.06.03 |
---|---|
[백준, 14502] 연구소 - BFS와 제너레이터, 깊은 복사 사용 (0) | 2021.06.02 |
[백준, 11724] 연결 요소의 개수, 시간 복잡도/메모리 효율 향상 (0) | 2021.06.02 |
[프로그래머스, 플로이트 와샬] 배달 (0) | 2021.05.31 |
[백준, 2231] 분해합 (0) | 2021.05.31 |