반응형
백준 2161번 문제 카드1
https://www.acmicpc.net/problem/2161
큐를 사용하는 문제이다.
문제 풀이
전체 갯수 입력받고 데이터 입력받을 배열과 결과값 넣을 배열 생성
throw : 카드를 버릴 차례라면 True, 뒤로 넣을 차례라면 False를 담는 변수
데이터 배열 data에 값이 계속 추가되므로
data의 현재 길이를 이용해 data배열이 끝날때까지 반복하도록 함
해답 코드 python
#2161 #comm. 파이썬 que문제는 deque활용해보기
from sys import stdin
#전체 개수 입력
n = int(input())
#입력 받은 n값을 크기로, 데이터 입력받을 배열 생성
data = [0]*n
##result[0]*n
#결과값을 하나씩 넣을 배열 선언
result=[]
#데이터 입력
for i in range(0,n) :
data[i] = i+1
#print(data)
#카드를 버릴 차례라면 True, 뒤로 넣을 차례라면 False
throw = True
#data배열이 끝날때까지 반복하도록 함
i=0
while i<len(data) :
#print("이번 숫자는 " + str(data[i]))
if throw :
#카드를 버릴 차례
result.append(data[i])
elif not throw :
#뒤로 넣을 차례
data.append(data[i])
throw = not throw
i+=1
##결과값을 한 줄에 출력
ans=""
for r in result :
ans = ans+str(r)+" "
print(ans)
##print(n+n//2)
Comment
파이썬으로 큐와 관련된 문제를 풀 때
from collection import deque 를 많이 쓴다고 함
나는 저런 게 있는지도 몰랐다^^ 다음부턴 활용하기
.reverse()
.join()
.pop()
[::-1]
그리고 문자열 사이 {} 자리에 변수값 넣을 수 있게 해주는 그.. 생각도 안나네 m어쩌구
그리고 코드 한줄로 입력받아서 배열 만드는 거
등등 내가 모르는 게 너무 많았다~!
쓰던 것만 쓰지 말고 여러가지를 활용하자.
손으로 만들기 전에 있는지 찾아보자!
반응형
'DSA > Algorithm' 카테고리의 다른 글
[백준 2231] 분해합 Python 완전탐색(브루트포스) (0) | 2021.09.26 |
---|---|
[백준 2798] 블랙잭 Python 완전탐색(브루트포스) (0) | 2021.09.26 |
[백준 15829] Hashing 해싱 Python 해시 (0) | 2021.09.26 |
[백준 12605] 단어순서 뒤집기 Python 스택 (0) | 2021.09.14 |
[백준 17608] 막대기 Python 스택 (0) | 2021.09.14 |