728x90
반응형
https://level.goorm.io/exam/43061/%EA%B3%84%EC%88%98%EA%B8%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0/quiz/1
구름LEVEL
난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.
level.goorm.io
m = int(input())
line_maxs = [v + 1 for v in map(int, input().split())]
line_inits = list(map(int, input().split()))
answers = [0] * m
count = int(input())
for a, b in zip(line_maxs, line_inits):
if a <= b: # 최대값보다 큰 초기값일 경우 -1
print(-1)
break
else:
for i in range(m-1, -1, -1):
count, answers[i] = divmod((line_inits[i] + count), line_maxs[i])
print(''.join(map(str, answers)))
'''
라인별로 최대값과 초기값을 저장시켜준다.
최대값에서 1을 더해주는 이유는 divmod를 사용하여 계산하기 위해 1을 더해주었다.
문제에서 -1이 나오는 경우는 최대값보다 초기값이 높게 설정되어 있는 경우이다.
그래서 최대값과 초기값을 zip으로 묶어 for문을 돌려
최대값보다 큰 초기값이라면 -1을 출력하고 종료한다.
- for else 구문은 for문이 중간에 break등으로 끝나지 않으면 else문을 실행시킨다.
else문으로 온다면 뒤에서부터 divmod로 몫과 나머지를 계산하여
몫은 왼쪽칸으로 넘기고 나머지는 정답배열에 넣는다.
'''728x90
반응형
'개발 > 문제풀이' 카테고리의 다른 글
| 프로그래머스 '롤케이크 자르기' 파이썬 풀이 (1) | 2024.01.03 |
|---|---|
| 파일명 뒤에 0으로 채워 자릿수 맞추고 일괄 변경하는 배치 파일이나 파이썬 코드 (0) | 2023.10.18 |
| AWS 포트(방화벽) 연결 실수 해결 [ufw 문제] (2) | 2023.10.17 |
| 프로그래머스 '과제 진행하기' 파이썬 풀이 (0) | 2023.09.14 |
| 프로그래머스 '다리를 지나는 트럭' 파이썬 풀이 (0) | 2023.09.04 |
댓글