Algorithm/BFS 35

[소프티어 6281번] 동계 테스트 시점 예측

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sysfrom collections import dequeinput = sys.stdin.readline# 아침에 출근해보면 테스트 차량들 위에 눈얼음이 생겨있음# 커다란 얼음이 녹고난 뒤에 테스트가 가능# 차량마다 당일의 테스트 가능 시점을 알기 위한 예측 프로그램 제작# N x M 크기의 격자 위에 눈 얼음의 모양을 작은 정사각형들이 집합되어 있는 모양으로 변환# 아침이 되면 기온이 상승하여 천천히 녹는다# 얼음은 상하좌우 중에서 적어도 2변 이상이 외부와 접촉했을 때 정확히 1시간만에 녹음# 얼음 내부에 있는 공간은 얼음 외부 공기와 접촉하지 않는 걸로 가정# 주어진 얼음이 모두 녹아서 사라지는데 걸리는 시간n, m =..

Algorithm/BFS 2024.06.27

[소프티어 6282번] 장애물 인식 프로그램

Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiimport sysfrom collections import deque# 1 - 장애물, 0 - 도로# 장애물 블록수 + 각 블록에 속하는 장애물의 수를 오름차순으로 정렬input = sys.stdin.readlinedx, dy = [-1,1,0,0], [0,0,-1,1]N = int(input())area = [list(map(int,list(input()))) for _ in range(N)]visited = [[False]*N for _ in range(N)]answer = []def bfs(x,y): queue = deque([(x,y)]) visited[x][y] = True count = 1 whi..

Algorithm/BFS 2024.06.16

[백준 5014번] 스타트링크

# 스타트링크는 총 F층으로 이루어진 고층 건물에 사무실이 있다# 스타트링크가 있는 곳의 위치는 G층이다# 강호가 지금 있는 곳은 S층# 엘리베이터는 버튼이 2개밖에 없다# U버튼은 위로 U층을 가는 버튼, D버튼은 아래로 D층을 가는 버튼# (만약 U층 위, 또는 D층 아래에 해당하는 층이 없을 때는, 엘리베이터는 움직이지 않는다)# 강호가 G층에 도착하려면, 버튼을 적어도 몇 번 눌러야 하는지 구하는 프로그램# 만약, 엘리베이터를 이용해서 G층에 갈 수 없다면, "use the stairs"를 출력from collections import dequeF, S, G, U, D = map(int,input().split())visited = [False]*1000001answer = float("inf")..

Algorithm/BFS 2024.06.09

[백준 2636번] 치즈

https://www.acmicpc.net/problem/2636 # 판의 가장자리에는 치즈가 놓여 있지 않다.# 치즈에는 하나 이상의 구멍이 있을 수 있다.# 공기와 접촉된 칸은 한 시간이 지나면 녹아 없어진다.# 치즈의 구멍 속에는 공기가 없지만 구멍을 둘러싼 치즈가 녹아서 구멍이 열리면 구멍 속으로 공기가 들어가게 된다.# 공기 중에서 치즈가 모두 녹아 없어지는 데 걸리는 시간과 모두 녹기 한 시간 전에 남아있는 치즈조각이 놓여 있는 칸의 개수를 구하는 프로그램from collections import dequedx = [-1,1,0,0]dy = [0,0,-1,1]r, c = map(int,input().split())area = [list(map(int,input().split())) for _ ..

Algorithm/BFS 2024.06.04

[백준 4485번] 녹색 옷 입은 애가 젤다지?

# 젤다의 전설 게임에서 화폐의 단위는 루피(rupee) # '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다 # 링크는 지금 도둑루피만 가득한 N x N 크기의 동굴의 제일 왼쪽 위에 있다 # 링크는 이 동굴의 반대편 출구, 제일 오른쪽 아래 칸인 [N-1][N-1]까지 이동해야 한다 # 동굴의 각 칸마다 도둑루피가 있는데, 이 칸을 지나면 해당 도둑루피의 크기만큼 소지금을 잃게 된다 # 링크가 잃을 수밖에 없는 최소 금액은 얼마일까? import sys from collections import deque input = sys.stdin.readline dx = [-1,1,0,0] dy = [0,0,-1,1] INF = float("inf") index..

Algorithm/BFS 2024.04.22

[백준 11123번] 양 한마리... 양 두마리...

11123번: 양 한마리... 양 두마리... 얼마전에 나는 불면증에 시달렸지... 천장이 뚫어져라 뜬 눈으로 밤을 지새우곤 했었지. 그러던 어느 날 내 친구 광민이에게 나의 불면증에 대해 말했더니 이렇게 말하더군. "양이라도 세봐!" www.acmicpc.net import sys from collections import deque input = sys.stdin.readline t = int(input().rstrip()) dx = [-1,1,0,0] dy = [0,0,-1,1] for _ in range(t): h,w = map(int,input().split()) answer = 0 area = [list(input().rstrip()) for _ in range(h)] visited = [[F..

Algorithm/BFS 2024.01.06

[백준 5427번] 불

5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net # 상근이는 불이 옮겨진 칸과 불이 붙으려는 칸으로 이동 X # 상근이가 있는 칸에 불이 옮겨옴과 동시에 다른 칸으로 이동할 수 있다. # 빌딩의 지도가 주어졌을때, 얼마나 빨리 빌딩을 탈출할 수 있는가(최단 시간) # 빌딩을 탈출하는 최단 시간, 불가능하다면 IMPOSSIBLE 출력 from collections import deque t = int(input()) dx = [-1,1,0,0] dy = [0,0,-1,1] for _ in range(t): w, h = ma..

Algorithm/BFS 2023.12.29