회전판에 먹어야 할 N개의 음식이 있다.
각 음식에는 1부터 N까지 번호가 붙어있으며, 각 음식을 섭취하는 데 일정 시간이 소요된다.
다음과 같은 방법으로 음식을 섭취한다.
- 1번 음식부터 먹기 시작하며, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓는다.
- 마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음식이 무지 앞으로 온다.
- 무지는 음식 하나를 1초 동안 섭취한 후 남은 음식은 그대로 두고, 다음 음식을 섭취한다.
무지가 먹방을 시작한 지 K초 후에 네트워크 장애로 인해 방송이 잠시 중단되었다.
네트워크 정상화 후 다시 방송을 이어나갈 때, 몇 번 음식부터 섭취해야 할까?
예시 케이스는 잘 돌아가는데 채점하면 다 틀린다.... 🤮
일단 내가 생각한 아이디어는,
0) 인덱스 다 돌아가면 다시 0으로 초기화 시켜주기
1-1) 남은 음식이 있다면 -> 음식 숫자 1 차감 & 진행 시간 1 추가
1-2) 남은 음식이 없다면 -> 진행시간 1 추가
2) 진행 시간이 네트워크 장애 발생 시간이 되면 -> 그 때 음식 번호 리턴
#input : [3,1,2] and 5
#output : 1
food_times = list(map(int, input().split()))
k = int(input())
answer = 0
l = len(food_times)
t = 1
print(food_times)
i = 0
while True:
if food_times[i] != 0:
food_times[i] = food_times[i] - 1
t += 1
print(i)
print(food_times)
elif food_times[i] == 0:
t += 1
print(i)
print(food_times)
if t == k:
answer = i+1
break;
i += 1
if i == l:
i = 0
if answer == l:
answer = 1
print(answer)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'Algorithm > Programmers' 카테고리의 다른 글
[구현] 럭키 스트레이트 (파이썬) (0) | 2022.08.04 |
---|---|
[구현] 상하좌우 (파이썬) (0) | 2022.08.04 |
[그리디] 볼링공 고르기 (파이썬) (0) | 2022.07.16 |
[그리디] 만들 수 없는 금액 (파이썬) (0) | 2022.07.16 |
[그리디] 문자열 뒤집기 (파이썬) (0) | 2022.07.16 |