본문 바로가기
728x90
반응형

deque5

2022.02.24 [백준] (python 파이썬) 요세푸스 문제 0 https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 풀이 이 문제를 풀기 위해 deque를 사용하였다. 이유는 deque를 사용하면 배열을 회전시킬 수 있기 때문이다. rotate()를 사용하면 괄호에 양수를 넣으면 양수 값만큼 오른쪽으로 배열이 회전하고, 음수를 넣으면 음수 값만큼 배열이 왼쪽으로 회전한다. 예제에서 3번째 사람을 계속 제거해 가야하니 배열을 왼쪽으로 3만큼 회전시키면 3번째사람이 배열의 끝에 위치하게 된다. 그러면 배열의 마지막 값을 뽑아 ans배열에 담고 이 작업을 deq가 빌때까지 반복했다. 1 2 3 4 5.. 2022. 2. 24.
2022.02.24 [백준] (python 파이썬) 큐 https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 이 문제는 queue로 풀어도 되지만 활용도?가 더 높은 deque를 이용해서 코드를 작성했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import sys from collections import deque input=sys.stdin.readline deq=.. 2022. 2. 24.
2022.02.12 [백준] (python 파이썬) 요세푸스 문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 이 문제는 1~N까지의 배열에서 K번째 데이터를 제거하고 제거한 순서대로 출력하는 문제이다. deque을 사용하여 deq배열을 -K만큼 회전시킨 다음, 배열의 마지막 데이터를 지우는 동시에 ans배열에 저장시켰다. N=6, K=3이라고 가정해보자 그러면 deq=[1, 2, 3, 4, 5, 6]이 되고 이 배열을 -K만큼 회전시키면 deq_rotate=[4, 5, 6, 1, 2, 3]이 된다. 여기서 배열의 마지막 데이터를 지우면 결과적으로 deq배열에서 3번째 데이터를 지우는 것이 .. 2022. 2. 12.
2022.02.11 [백준] (python 파이썬) 덱 https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 12345678910111213141516171819202122from collections import dequeimport sys deq=deque()for i in range(int(sys.stdin.readline())): arr=sys.stdin.readline().split() if arr[0] =='push_front': deq.appendleft(int(arr[.. 2022. 2. 11.
728x90
반응형