본문 바로가기

DFS

(3)
[백준_3191번] 백조의 호수 (python) https://www.acmicpc.net/problem/3197 3197번: 백조의 호수 입력의 첫째 줄에는 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1500. 다음 R개의 줄에는 각각 길이 C의 문자열이 하나씩 주어진다. '.'은 물 공간, 'X'는 빙판 공간, 'L'은 백조가 있는 공간으로 나타낸다. www.acmicpc.net 내풀이 -> 시간초과 import sys from collections import deque # input = sys.stdin.readline n, m = map(int, input().split()) MAP = [list(input().strip()) for _ in range(n)] p = [] for r in range(n): for c in range(m):..
[백준_12100번] 2048 (python) https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 내풀이 from itertools import product import copy def up(BOARD): # x 0 -> 2 added = {} n = len(BOARD) for x in range(n): for y in range(n): nx, ny = x, y while nx - 1 >= 0 and BOARD[nx-1][y] == 0: nx -= 1 # 이동 B..
[백준_13460번] 구슬 탈출 2 (python) https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 내 풀이 n, m = map(int,input().split()) MAP = [] for _ in range(n): MAP.append(list(map(str,input()))) def move(x, y, dx, dy): cnt = 0 nx, ny = x, y while MAP[nx + dx][ny + dy] != '#' and MAP[nx][ny..