백준 57

[백준][Python] 7576 토마토

🍅 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 내 풀이 from collections import deque def bfs(): q = deque() for i in range(len(tomato_index)): q.append((tomato_index[i][0], tomato_index[i][1])) while q: cx, cy = q.popleft() for k in range(4): nx, ny = cx + dx[k]..

코딩테스트 2024.03.09

[백준][Python] 10026 적록색약

❤️💚 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 내 풀이 from collections import deque def bfs(x, y): global area q = deque() q.append((x,y)) visited[x][y] = True color = arr[x][y] # 현재 색 area += 1 while q: cx, cy = q.popleft() for k in range(4): nx, ny = cx + dx[k],..

코딩테스트 2024.03.08

[백준][Python] 2583 영역 구하기

◼️ https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 내 풀이 from collections import deque def bfs(x, y): visited[x][y] = True q = deque() size = 0 if arr[x][y] == 0: q.append((x,y)) size += 1 while q: cx, cy = q.popleft() for k in range(4): nx, ny = cx + dx[k], cy..

코딩테스트 2024.03.08

[백준][Python] 14940 쉬운 최단거리

🗺️ https://www.acmicpc.net/problem/14940 14940번: 쉬운 최단거리 지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000) 다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이 www.acmicpc.net 내 풀이 from collections import deque def bfs(x, y): q = deque() q.append((x,y)) while q: cx, cy = q.popleft() for k in range(4): nx, ny = cx + dx[k], cy + dy[k] if 0

코딩테스트 2024.03.06

[백준][Python] 1303 전쟁 - 전투

⚔️ https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 내 풀이 from collections import deque def bfs(x, y): global our_power, enemy_power power = 1 visited[x][y] = True q = deque() current = arr[x][y] # 현재 병사 (B or W) q.append((x, y)) while q: cx, cy = q.popleft()..

코딩테스트 2024.03.06

[백준][Python] 1743 음식물 피하기

🍱 https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 내 풀이 from collections import deque def bfs(x, y): size = 0 # 현재 음식물의 크기 visited[x][y] = True q = deque() if arr[x][y] == 1: # 음식물인 경우 q.append((x,y)) size += 1 while q: cx, cy = q.popleft() for k in..

코딩테스트 2024.03.06

[백준][Python] 1926 그림

🎨 https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 내 풀이 from collections import deque def bfs(x, y): global total_painting current_area = 0 visited[x][y] = True q = deque() if arr[x][y] == 1: q.append((x,y)) total_painting += 1 current_area = 1 while q: cx, cy = q.popleft() ..

코딩테스트 2024.03.05