반응형
밑의 링크는 백준에서의 문제 링크입니다.
2161번: 카드1
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
파이썬 코드와 결과입니다.
# 첫째 줄에 정수 N을 입력합니다.
# 1 <= N <= 1,000
N = int(input())
# 리스트 변수를 선언해 1부터 N까지의 번호가 붙어 있는 카드를 넣어줍니다.
deck = [str(card) for card in range(1, N + 1)]
# 버린 카드들을 차례대로 저장하는 리스트 변수를 선언합니다.
dump = []
# 카드가 한 장 남을 때까지 반복합니다.
while True:
# 카드가 한 장만 남았다면
if len(deck) == 1:
# 남은 카드 한 장도 버리는 카드 변수에 넣어줍니다.
dump.append(deck[0])
# 반복문을 탈출합니다.
break
# 카드들에서 맨 위에 있는 카드를 버리는 카드 변수에 넣어줍니다.
dump.append(deck[0])
deck.pop(0)
# 그 다음에 있는 카드를 카드 뭉치 맨 아래에 넣어줍니다.
temp_card = deck[0]
deck.pop(0)
deck.append(temp_card)
# 버린 카드 리스트 변수에 있는 값들을 공백으로 구분해 출력합니다.
print(' '.join(dump))
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
반응형
댓글