곱하기 혹은 더하기 코드 및 해설 (파이썬)
2021. 8. 16. 15:38ㆍalgorithm
반응형
출처: 이것이 취업을 위한 코딩 테스트다 with 파이썬, Q 2, p 312
0과 1이 포함된 연산은 더하기, 그 외의 숫자들은 모두 곱하기로 처리합니다. 숫자들의 리스트를 deque로 만든 후, 순서대로 숫자를 하나씩 pop합니다. 숫자가 남아있을 때까지 다음을 반복합니다. 이전 혹은 현재 숫자가 0 또는 1이면 이전 숫자와 현재 숫자를 더한 값을 이전 숫자로 설정합니다. 그 외는 이전 숫자와 현재 숫자를 곱한 값을 이전 숫자로 설정합니다. 반복이 끝난 후 이전 숫자를 반환합니다.
import sys
from collections import deque
# 0과 1은 더하기, 나머지 수는 곱하기로 처리해야 함
s = [int(num) for num in sys.stdin.readline()]
s = deque(s)
# 첫 번째 숫자
prev = s.popleft()
while s:
current = s.popleft()
# 연산하는 숫자 중 적어도 하나가 0 또는 1이면 더하기
if prev < 2 or current < 2:
prev = prev + current
# 그외는 모두 곱하기
else:
prev = prev * current
print(prev)
반응형
'algorithm' 카테고리의 다른 글
만들 수 없는 금액 코드 및 해설 (파이썬) (0) | 2021.08.16 |
---|---|
백준 뒤집기 코드 및 해설 (파이썬) (0) | 2021.08.16 |
모험가 길드 코드 및 해설 (파이썬) (0) | 2021.08.16 |
백준 카드 정렬하기 코드 및 해설 (파이썬) (0) | 2021.08.12 |
프로그래머스 실패율 코드 및 해설 (파이썬) (0) | 2021.08.04 |