data = input()
result = 0
for i in range(len(data)):
if int(data[i]) <= 1 or result <= 1:
result += int(data[i])
else:
result *= int(data[i])
print(result)
num = map(int, input()) # 문자열 S 입력
result = 0 # 결과값 = 0으로 초기화
for i in num:
# 더하려는 수가 0, 1 이거나 기존에 계산된 수가 0, 1인 경우
if i <= 1 or result <= 1:
result += i # 더하기
else:
result *= i # 곱하기
print(result)
: 예전 풀이에 비해 쪼오오금 간소해진 느낌? 처음부터 정수형으로 받기 때문에~ 근데 사실 별 차이는 없다 ㅎㅎ
map(int, input())
을 하는가?int(input())
을 하면 0123 과 같은 0으로 시작하는 숫자는 0을 떼어버리고 정수형으로 변환함.map(int, input())
은 input되는 각각을 정수형으로 변환! 이걸 그대로 출력하면 <map object at 0x7fd640956908>
과 같은 결과를 얻지만, for문으로 원소 하나씩 출력하면 얻어짐.. why? : 맵 객체(map object)가 만들어지면, 이 상태로는 안에 들어있는 값을 볼 수 없기 때문!arr = list(map(lambda x: int(x), list(input())))
result = arr[0]
for i in arr[1:]:
if result < 2 or i < 2:
result += i
else:
result *= i
print(result)
data = input()
#첫 번째 문자를 숫자로 변경하여 대입
result = int(data[0])
for i in range(1, len(data)):
#두 수 중에서 하나라도 '0' 혹은 '1'인 경우, 곱하기보다는 더하기 수행
num = int(data[i])
if num <= 1 or result <= 1:
result += num
else:
result *= num
print(result)
: 첫 시작을 아무것도 더하지 않은 0으로 설정한 나에 비해, 모범답안은 아예 첫 시작을 자료의 첫번째 수로 함으로써 for문이 한번이라도 덜 돌아가게 했다..!