Queue(4)
-
백준 토마토 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 요즘 비슷한 문제를 엄청 많이 풀었다. 다 거기서 거기네.. bfs... 비슷한 bfs 문제들 경쟁적 전염 연구소 감시 피하기 인구 이동 make_ripe 함수로 하루동안 토마토의 변화를 계산한다. 우선 익은 토마토가 있는 좌표들인 tomato를 큐로 만들고, 이들을 하나씩 pop하면서 그 토마토의 인접한 부분 중에 0인 곳이 있으면 1로 바꿔준다. 그리고 이제 익게 되었으니 다음..
2021.10.04 -
백준 인구 이동 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net * Python으로는 시간 초과, PyPy3로는 통과 find_union 함수로는 현재 국가들 상태에서 국경 열 수 있는 국가들을 구합니다. 반환하는 것은 list of list인 unions로, 같은 연합국인 국가들의 좌표를 하나의 리스트로 저장합니다. 만약 연결되지 않는 연합국 그룹이 2개라면, unions는 2개의 리스트를 가진 리스트입니다. 모든 좌표에 대해 아직 방문하지 않..
2021.09.22 -
백준 연구소 코드 및 해설 (파이썬)
https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 최적의 벽 세우기를 알고리즘으로 생각하긴 너무 어려운 것 같아서.. 그냥 모든 combination으로 계산해보는 걸로 코드를 짜봤다. Python3으로는 시간초과고 PyPy3로는 통과라서 약간 찜찜하지만~ 그래도~~ 입력으로 주어진 연구소를 graph, 연구소에서 벽을 세울 수 있는 빈 곳의 좌표는 blank, 바이러스의 좌표는 virus에 저장했다. compute_safe 함수로는 입력으로 주어진 연구소 ..
2021.09.08 -
프로그래머스 다리를 지나는 트럭 코드 및 해설 (파이썬)
programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 💡 다리와 트럭을 큐로 사용하여 풀이했습니다. 먼저 다리는 bridge라는 큐로, bridge_length만큼의 0으로 초기화시켜주었고, 트럭은 trucks라는 큐로, 입력으로 주어진 truck_weights를 큐로 변환시켜준 것입니다. trucks에서 트럭 하나씩 꺼내면서 모든 트럭이 꺼내졌을 때까지 while문을 돌립니다. 현재 트럭이 다리 위에 올라갈 수..
2021.04.07