코딩테스트 & 문제 풀이

[Python]백준_2161 : 카드1

2023. 6. 21. 12:01

2022년 8월 21일에 작성

 

https://www.acmicpc.net/problem/2161

 

2161번: 카드1

N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가

www.acmicpc.net

 

 

문제 분석

큐(queue) 자료 구조를 이용한 문제이다.

 

큐(queue)는 선입선출, FIFO(First In First Out) 기반의 매우 유명한 자료 구조이다. 큐를 사용하면 데이터를 추가한 순서대로 제거할 수 있다.

 

pop(), append() 함수를 이용하여 문제를 푼다.

 

 

소스 코드 (⭕)

N = int(input())  # 정수 N 입력받기
card = list(range(1, N+1))  # card 리스트에 1부터 N까지 넣기

cardx = []  # 카드 버릴 빈 리스트 만들기

while True:  # 무한 반복문
    cardx.append(card.pop(0))  # 제일 위에 있는 카드를 버린다.
    if not card:  # 남은 card가 없으면 멈춘다.
        break
    card.append(card.pop(0))  # 제일 위에 있는 카드를 제일 밑으로 옮긴다.

print(*cardx)  # cardx에 있는 요소들 출력

 

코드 분석

1. 정수 N 입력받고, card 리스트를 만들어서 1부터 N까지 넣는다.

2. 버릴 카드를 담을 빈 리스트 cardx를 만들어 준다.

3. card.pop(0)으로 card의 첫번째 요소를 제거하고, append로 그 요소를 cardx에 추가한다.

4. 만약, 위에서 card를 pop 했을 때 card가 비었으면 반복문을 멈춘다.

5. card의 첫 번째 요소(위)를 card의 마지막 요소(아래)로 옮긴다.

6. 마지막으로 cardx에 있는 요소를 출력한다.

 


✍️print(*변수)~ 리스트 요소 한번에 출력하기

>>> arr = [1, 2, 3, 4]

>>> print(arr)
[1, 2, 3, 4]

>>> for i in arr:
        print(i, end = " ")

1 2 3 4

>>> print(*arr)
1 2 3 4

리스트를 대괄호와 콤마 없이 출력하고 싶을 때
보통 for 문을 사용하지만, print(*리스트변수명)으로도 간단하게 출력할 수 있다.

 


 

end

저번엔 스택 이번엔 큐 자료구조 문제 풀어봤다.
쉬운 문제만 풀다가 갑자기 어려운 문제 풀려니 힘들지만 어려운 문제를 풀어봐야 더 많은 도움이 되는 것 같다.

 

 

 

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

[Python]백준_1547 : 공  (0) 2023.06.23
[Python]백준_15828 : Router  (0) 2023.06.22
[Python]백준_10773 : 제로  (0) 2023.06.02
[C]백준_17608 : 막대기  (0) 2023.06.01
[Python]프로그래머스_Lv1 : 두 개 뽑아서 더하기  (0) 2023.06.01
  1. 문제 분석
  2. 소스 코드 (⭕)
  3. 코드 분석
  4. ✍️print(*변수)~ 리스트 요소 한번에 출력하기
  5. end
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
  • [Python]백준_1547 : 공
  • [Python]백준_15828 : Router
  • [Python]백준_10773 : 제로
  • [C]백준_17608 : 막대기
Hicecream
Hicecream
Hicecream
Hicecream
Hicecream
전체
오늘
어제
  • 분류 전체보기 (199)
    • 코딩테스트 & 문제 풀이 (159)
    • 동아리 활동 (8)
    • 외부 활동 (0)
    • 대학 과제 (3)
    • Git & Git Hub (5)
    • 코딩 프로젝트 (1)
    • 공부 메모 (17)
    • 일상 (2)
    • 참고사항 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • python
  • Bronze 3
  • Silver 5
  • Silver 4
  • 사칙연산
  • Bronze 1
  • programmers
  • C
  • BOJ
  • Code up
  • Bronze 2
  • Java
  • 문자열
  • Bronze 4
  • 정렬
  • Bronze 5
  • C언어 기초 100제
  • 수학
  • LV1
  • 구현

최근 댓글

최근 글

hELLO · Designed By 정상우.
Hicecream
[Python]백준_2161 : 카드1
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.