소스 코드
T = int(input())
for tc in range(1,1+T):
# 수업 들어야하는 일수
goal = int(input())
# 시간표
cal = list(map(int,input().split()))
# 수업일수
class_day = cal.count(1)
# 필요한 수업일수가 1이 아닌 경우
temp_num = 0
if goal != 1:
# goal - 1하는 이유
# ex) goal이 2, class_day가 1인 경우
# goal//class_day*7하면 14가 나옴
# 이런 경우 제외하기 위해
temp_num = (goal-1)//class_day*7
if (goal-1)%class_day != 0:
goal = 1 + (goal-1)%class_day
else:
goal = 1
# 일 ~ 토를 시작일로 설정(idx)
# 최소 날짜 구하기
cnt = 9999999
idx = 0
while idx != 7:
num = goal
temp_cnt = 0
for q in range(7):
if cal[(q+idx)%7] == 1:
num -= 1
temp_cnt += 1
if num == 0 or q == 6:
idx += 1
if temp_cnt < cnt:
cnt = temp_cnt
break
print('#{} {}'.format(tc,temp_num+cnt))
해결 방법
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 최장 증가 부분 수열 - PYTHON #3307 (0) | 2022.01.06 |
---|---|
[SWEA 코딩] 프리셀 통계 - PYTHON #12051 (0) | 2022.01.04 |
[SWEA 코딩] 장마 속의 막대 - PYTHON #12742 (0) | 2021.10.13 |
[SWEA 코딩] 부서진 타일 - PYTHON #12052 (0) | 2021.09.08 |
[SWEA 코딩] 콩 많이 심기 - PYTHON #4301 (0) | 2021.07.15 |