728x90

queue 8

[Python]백준 BaekJoon.AC 1966 : 프린터 큐(queue)

https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 점점 문제가 복잡해진다...! 헷갈려서 이번 문제부터 설계를 메모하기 시작했는데, 마침 설명하기도 난해한 문제라 그냥 메모로 대신한다. 글씨가 좀 흩날라가서.. (차마 패드도 교정해주지 못한 악필..) 다음부턴 더 열심히 써야겠다..!! 그리고 이젠 설계하는 습관을 더 들여야겠다. 코드가 복잡한 것 같아 시간이 오버될 줄 알았는데 통과됐다. 조건 범위가 그리 넓지 않아서 그런 듯 하다.. 그래도 나름..

[Python]BaekJoon.AC 2022.01.27

[Python]백준 BaekJoon.AC 10845 : 큐(deque, try-except)

https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 이전에 했던 10828-스택 변형문제다. 까다롭게 변형된 것도 아니라 기존 틀에 몇 가지만 더해주면 된다. 문제 이름은 '큐'지만... 덱을 이용했다. 파이썬에선 queue와 deque이 뚜렷하게 차별화된 기본 사용법을 가지진 않는 것 같다. 큐보다 덱이 더 기능이 많은 것 같기도 하고... 양방향 추가·추출이 가능한 deque과 그렇지 않은 queue 중 굳이 queue를 사용할..

[Python]BaekJoon.AC 2022.01.24

[Python]백준 BaekJoon.AC 2164 : 카드2(deque, queue)

https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 알고리즘 분류가 큐인데.. 큐로 풀었더니 틀림처리 된다... 이유는 시간초과. (큐로 다른 풀이법이 있는건가..) 더보기 import queue N = int(input()) que = queue.Queue() for i in range(N): que.put(i+1) while que.qsize() != 1: que.get() que.put(que.get()) print(que.get()) 아마 ..

[Python]BaekJoon.AC 2022.01.20

[Java]백준 BaekJoon.AC 16236 : 아기 상어 (Queue, bfs)

https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 고려해줘야 할 조건이 많은 까다로운 문제였지만 하나하나 풀어가는 재미가 있던 문제다! 난도는 그리 높지 않았지만 조건을 빠트려 하나씩 넣어주는 묘미(?)가 있었다. 이제 제법 Queue나 bfs에 익숙해진거 같다 다른 사람 코드 참고를 크게 안하고 풀어서 그런진 모르겠지만 코드 길이도 길고 선언한 것들도 많아 걱정했는데 별 탈 없이 성공을 안겨준 코드다ㅋㅋ 아래 가려둔 코드는 다른 답이 나..

[Java]BaekJoon.AC 2021.12.08

[Java]백준 BaekJoon.AC 13549 : 숨바꼭질3 (너비우선탐색-bfs, Queue)

https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 2*X의 위치로 이동할 땐 0초가 소요된다는게 숨바꼭질2와 다른 점이다. 그리고 그 방법이 몇 가지인지 구하지 않아도 된다. 가장 작은 시간값이 무엇인지만 구하면 된다. 이미 푼 숨바꼭질2 코드를 보고 베끼려 하지 않았다. 그렇지만 아무래도 파생된 문제이기 때문에 기본적인 큰 틀은 같았다. 소요시간이 0초인 2*X를 어떻게 구현할지 고민을 많이 했다. 이 경우엔 ..

[Java]BaekJoon.AC 2021.11.24

[Java]백준 BaekJoon.AC 12851 : 숨바꼭질2 (너비우선탐색-bfs, Queue)

https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 이 문제도 N-Queue 문제처럼 시간을 단축시킬 수 있는 방법을 찾는게 관건인 것 같다. 아래와 같은 방식을 사용하지 않으면 시간초과가 일어나는지는 모르겠지만, 굳이 단축시키지 않을 이유는 없으니.. 우선, 수빈이가 동생보다 더 오른쪽에 있다면 가능한 방법은 (X-1)뿐이다. 왼쪽으로 한칸씩 총총 이동하는 방법밖에 존재하지 않으니, (N>=K) 일 때 걸리는..

[Java]BaekJoon.AC 2021.11.17

[Java]백준 BaekJoon.AC 9019 : DSLR (Queue, Class 사용)

https://www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net (문제 이름이 DSLR이라 카메라 문제인 줄 알았는데... 이상한 계산기 문제였다..) 처음엔 TreeMap을 이용해 숫자와 나열을 저장하려 했다. 그런데 시간이 많이 걸릴 것 같기도 했고, visit 배열과 비교도 번거로웠다. 또한 bfs를 구현하고 싶었는데, 구현이 쉽지 않았다. 아무리 머리를 굴려도 각이 안서길래, 역시 첫발은 항상 틀리는ㄱ... 내게 이 문제가 어려웠던 이유는 ..

[Java]BaekJoon.AC 2021.10.24

[Java]백준 BaekJoon.AC 7662 : 이중 우선순위 큐 (3%에서 틀렸다)

https://www.acmicpc.net/problem/7662 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net 이중 우선순위 큐 문제.. 처음엔 PriorityQueue로 풀었는데 최소값과 최대값을 자유자재로 삭제하는게 어려워 방법을 전환했다. 인터넷도 참고해서 야심차게 TreeMap에 처음 도전했는데, 기존에 사용해봤던 HashMap과 비슷해 코딩 자체는 크게 어렵진 않았다. (다만 구현이 안될뿐,,) 이것 저것 알아가며 대장정 끝에 코드를 구현했다. 작동도 잘 되고 예제도 척척 풀어내길래 잔뜩 기대..

728x90