본문 바로가기
코딩테스트 문제풀이/beakjoon

[백준] 2346 풍선 터뜨리기

by merona99 2021. 9. 27.
반응형

백준 2346번 풍선 터뜨리기

자료구조 / 덱 / 파이썬

 

 

 

[문제]

 

 

[과정]

  • 풍선 번호와 종이에 적혀있는 수를 매칭해줌
  • n-1번만큼 반복:
  •     result[출력값 배열]에 번호를 저장하고 해당 번호의 종이값(c)을 얻음
  •     c가 양수일경우 -1를 해주고, 음수일경우에는 별도의 작업x
  • 마지막배열의 숫자를 result에 넣고 제출형식에 맞게 출력

 

 

[소스코드]

 

# 풍선 터뜨리기

n = int(input())
num = list(map(int, input().split()))
balloon = [0 for _ in range(n)]
for i in range(n):
    balloon[i] = (i+1, num[i])

result = []
cnt = 0
for _ in range(n-1):
    result.append(balloon[cnt][0])
    c = balloon[cnt][1]
    del balloon[cnt]
    if c >= 0:
        cnt = (cnt + c - 1) % len(balloon)
    else:
        cnt = (cnt + c) % len(balloon)

result.append(balloon[cnt][0])
for r in result:
    print(r, end=' ')

 

 

[통과]

제출형식을 리스트 그대로 출력해서 자꾸 틀렸었다.

 

반응형

'코딩테스트 문제풀이 > beakjoon' 카테고리의 다른 글

[백준] 3190 뱀  (0) 2021.11.04
[ICPC] 대학생 프로그래밍 경진대회  (0) 2021.10.09
[백준] 21608 상어 초등학교  (0) 2021.08.31
[백준] 18258 큐 2  (0) 2021.08.20
[백준] 1158 요세푸스 문제  (0) 2021.08.20

댓글