[PART3] 2. 곱하기 혹은 더하기

코뉴·2021년 1월 2일
0

이코테: 문제풀이

목록 보기
4/28

알고리즘 유형별 기출문제: 그리디

💻 2. 곱하기 혹은 더하기

난이도🖤🤍🤍 | 풀이시간 30초 | 제한시간 1초 | 메모리제한 128MB | Facebook 인터뷰


📌2021/01/02 작성 코드

# 입력
s = input()
n = len(s)

# n이 1일 때
if n == 1:
    print(s)
# n이 2 이상일 때
else:
    prev = int(s[0])
    ret = 0
    for i in range(1, n):
        # 더하기
        if (prev == 0) or (int(s[i]) == 0):
            ret = prev + int(s[i])
        # 곱하기
        else:
            ret = prev*int(s[i])
        # ret의 값을 prev에 할당
        prev = ret

# 출력
print(ret)

🤓 문제 해설

  • 두 수에 대해 연산을 수행할 때 두 수 중에서 하나라도 1 이하인 경우에는 더하며, 두 수가 모두 2 이상인 경우에는 곱하면 된다

🤓 답안 예시

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부터 9로만 이루어졌다고 했기 때문에 나의 경우는 코딩을 할 때 prev가 0이거나 현재 숫자가 0일 때는 더하기를 수행한다고 했는데, 답안 예시에서는 <= 1로 처리했다.
  • 1번 문제는 못 풀고 지나왔는데 2번 문제는 기대보다 너무 쉽다...
profile
코뉴의 도딩기록

0개의 댓글

관련 채용 정보