[Python] 백준 #2346- 풍선 터뜨리기

2022. 1. 21. 01:29·코딩테스트/백준[Python]

문제


 

2346번: 풍선 터뜨리기

1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선

www.acmicpc.net

코드


My answer

import sys
input=sys.stdin.readline

n=int(input())
ball=list(map(int,input().split()))
index=[i+2 for i in range(n-1)] 
result=[1]

i=0
a=ball.pop(i)

while(len(ball)!=0):
    if(a>0):
        i=(i-1+a)%len(ball)
    else:
        i=(i+a+len(ball))%len(ball)
    a=ball.pop(i)
    b=index.pop(i)
    result.append(b)
print(*result)

Another answer

n=int(input())
a=[*map(int,input().split())]
b=list(enumerate(a))
i=0
c=[]
while 1:
  c.append(b[i][0]+1)
  x=b.pop(i)[1]
  if not b: break
  if x>0: i=(i+x-1)%len(b)
  else: i=(i+x)%len(b)
print(*c)

풀이


우선 문제를 풀 때 중요한 점은 풍선이 터지면서 인덱스도 계속 바뀐다는 것이다. 하나씩 해보면서 규칙을 찾아보면 위처럼 양수일 때와 음수일 때 인덱스가 바뀌는 점화식이 찾아지고 그대로 계산하면된다. 풍선을 터뜨리면서 인덱스는 원래 인덱스를 추출해야하므로 인덱스 리스트도 미리 만들어 놓고 풍선을 터뜨리면서 같이 인덱스도 없애면서 결과리스트에 넣었다. 아래 코드는 나와 동일한테 인덱스 리스트 만들 때 enumerate를 사용했다.

728x90

'코딩테스트 > 백준[Python]' 카테고리의 다른 글

[Python] 백준 #14425- 문자열집합  (0) 2022.01.22
[Python] 백준 #1620- 나는야 포켓몬 마스터 이다솜  (0) 2022.01.21
[Python] 백준 #1935- 후위 표기식2  (0) 2022.01.21
[Python] 백준 #9184- 신나는 함수 실행  (0) 2022.01.20
[Python] 백준 #3986- 좋은 단어  (0) 2022.01.19
'코딩테스트/백준[Python]' 카테고리의 다른 글
  • [Python] 백준 #14425- 문자열집합
  • [Python] 백준 #1620- 나는야 포켓몬 마스터 이다솜
  • [Python] 백준 #1935- 후위 표기식2
  • [Python] 백준 #9184- 신나는 함수 실행
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (481)
      • 알쓸신잡 (88)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Blog

    • 🏠 Home

    ✏️글쓰기
    💻 관리

    Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    BFS
    이분탐색
    이것이취업을위한코딩테스트다
    dp
    백준
    그리디
    DFS
    파이썬
    나동빈
    이코테
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
상단으로

티스토리툴바