백준
백준 2346 풍선 터뜨리기 (파이썬)
MC류짱
2023. 7. 3. 20:40
풀이 및 해설(주석)
import sys
def main():
# 입력받기
N = int(sys.stdin.readline().strip())
tmp_nums = list(map(int, sys.stdin.readline().strip().split()))
# 입력받은 수들을 인덱스와 함께 쌍으로 묶어 nums 리스트 생성
nums = [(i, tmp_nums[i]) for i in range(N)]
target_idx = 0 # 현재 타겟 인덱스 초기화
rst = [] # 결과값을 담을 리스트 초기화
for i in range(N):
idx, num = nums.pop(target_idx) # nums에서 타겟 인덱스에 해당하는 요소를 추출
rst.append(idx) # 인덱스 값을 결과 리스트에 추가
# 타겟 인덱스를 새로 계산
if nums: # nums가 비어있지 않은 경우만 인덱스를 계산
if num > 0:
target_idx = (target_idx + num - 1) % len(nums)
else:
target_idx = (target_idx + num) % len(nums)
# 결과값 출력
for num in rst:
print(num + 1, end=' ')
if __name__ == '__main__':
main()