[구름 LEVEL] 계수기 만들기 (Python)

이솔·2024년 7월 3일

[구름 LEVEL] 계수기 만들기

https://level.goorm.io/exam/195692/gamejam/quiz/1


문제 설명


접근 방법

· 맨 오른쪽 자리에 K를 더해준 뒤, 각 자리에서의 사용 가능한 숫자의 개수로 나눠준 나머지가 각 자리, 각 자리에서의 사용 가능한 숫자으로 나눠준 몫이 올림수

· 각 자리에서의 사용 가능한 숫자의 개수는, 0 ~ 최댓값의 최댓값 +1개

· 다음 자리에서 올림수와 해당 자리의 원래 숫자를 더해준 뒤 다시 반복


알고리즘 설계 및 구현

n = int(input())
max_arr = list(map(int, input().split()[::-1]))  # 최대값 배열을 입력 받아서 역순으로 정렬
num_arr = list(map(int, input().split()[::-1]))  # 숫자 배열을 입력 받아서 역순으로 정렬
k = int(input()) 
result = ""  # 결과를 저장할 문자열 

for i in range(n):
    k += num_arr[i]  # k에 현재 숫자 배열의 값을 더함
    # 현재 최대값 배열의 값과 k를 나눈 나머지를 결과 문자열에 추가
    result = str(k % (max_arr[i] + 1)) + result
    # k를 현재 최대값 배열의 값으로 나눈 몫으로 업데이트(올림수)
    k = k // (max_arr[i] + 1)

# 최종 결과 출력
print(result)

결과


0개의 댓글