목록분류 전체보기 (71)
어읽로꾸거
Queue.Queue and collections.deque serve different purposes. Queue.Queue is intended for allowing different threads to communicate using queued messages/data, whereas collections.deque is simply intended as a datastructure. That's why Queue.Queue has methods like put_nowait(), get_nowait(), and join(), whereas collections.deque doesn't. Queue.Queue isn't intended to be used as a collection, which..
백준 13549 링크 https://www.acmicpc.net/problem/13549 풀이 bfs를 쓰면 됩니다. queue보다 deque가 속도가 더 빠른거같네요. 꽤 차이가 납니다. 코드 from collections import deque input = __import__('sys').stdin.readline n,m = map(int, input().split()) chaser = [float("inf") for _ in range(100001)] q = deque([(n,0)]) while q: now,moved=q.popleft() if chaser[now]>moved: chaser[now]=moved for i in [now+1,now-1]: if 0
백준 6118 링크 https://www.acmicpc.net/problem/6118 6118번: 숨바꼭질 문제 재서기는 수혀니와 교외 농장에서 숨바꼭질을 하고 있다. 농장에는 헛간이 많이 널려있고 재석이는 그 중에 하나에 숨어야 한다. 헛간의 개수는 N(2
백준 6087 링크 https://www.acmicpc.net/problem/6087 풀이 각 칸마다 최소 몇번의 거울을 써서 이동했나를 저장해 가면서 다익스트라로 풀었습니다. 그냥 큐로 푼사람도 있던데 조금 더 생각을 해봐야 할 것 같은... 특이한 점은 같은 회수의 거울을 이용 하더라도 온 방향이 다를 경우엔 답이 달라질 수 있으므로 저장된 최소 비용 >= 현재비용 으로 비교를 하였습니다. 조금 더 생각해본 결과 레이저 처럼 쭉쭉 뻗어나간다는 생각을 도입해보면 큐를 이용할 수 있다고 생각하여 다시 구현해보았습니다. 큐를 이용한 방법을 쓰니까 조금 더 빠르네요 코드 #다익스트라 import heapq input = __import__('sys').stdin.readline m,n = map(int, i..
백준 1926 링크 https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로로 연결된 것은 연결이 된 것이고 대각선으로 연결이 된 것은 떨어진 그림이다. 그림의 넓이란 그림에 포함된 1의 개수이다. www.acmicpc.net 풀이 🙄 코드 from collections import deque input=__import__('sys').stdin.readline n,m = map(int, input().split()) mp = [list(map(int, input().split())) ..
백준 2206 링크 https://www.acmicpc.net/problem/2206 풀이방법 파이썬으로 dequeue를 쓰는게 안 익숙해서 이상한데서 시간을 끌었다... 그냥 pop하면 안되고 popleft해야됨.. 만약 pop을 시키지 않고 맨 앞의 요소에 그냥 접근만 하고싶으면 q[0] 으로 할 수 있어요 처음엔 깔끔하게 짠거같은데 오류 잡는다고 이것저것 확실히 하다보니까 더러워진 느낌 저는 이 문제를 풀때 dp[y][x][벽을 뚫고 지나갔는지 여부]이걸 통해서 풀었지만, 다시 한번 생각해보니 dp[y][x]로만 해도 충분하다고 생각했었습니다. 왜냐하면, 벽을 뚫었는지 여부는 그냥 큐를 통해서 기록해주면 된다고 생각했기 때문입니다. 이미 뚫고 지나갔는지 확인해서 이미 뚫었다면 벽을 안지나가면 되는거..
힙이란? 자료구조의 종류중 하나로 지난번에 포스팅한 트리의 종류중 완전이진트리입니다. 힙의 특징은 자료를 삽입할때 빠르게 정렬을 한 상태로 삽입이 되어 자료를 빼낼때 아주 빠르게 빼낼 수 있습니다. 검색이진트리의 업글버전이라고 생각합니다. 다익스트라 알고리즘을 할때 우선순위 큐(priority queue)로 많이 이용하죠. 자료구조 - 트리(Tree) with C 트리란? 트리는 데이터 사이의 계층 관계를 나타내는 자료구조입니다. 루트는 트리의 가장 위쪽에 있는 노드입니다. 하나의 트리에는 하나의 루트가 있습니다. 그림을 거꾸로 보면 나무처럼 생겼죠? 리프는 트리.. postbarca.tistory.com 기본적인 구조는 이진노드로 이뤄진 트리입니다. 부모노드를 p라고 하고 자식노드를 c라고 가정하면 올..