본문 바로가기

Algorithm475

[파이썬] 백준 12919 : A와 B 2 (골드5) [파이썬] 백준 12919 : A와 B 2 (골드5)백준 12919 : A와 B 2풀이방향성 생각target 문자열에서 역으로 접근한다.정방향으로 접근하는 경우 경우의 수가 2배씩 늘어난다.DFS, BFS 둘 다 가능하다.전체코드1. DFSstart = input()end = input()find = 0def dfs(x): global find if find or not x: return if x==start: find = 1 if x[-1] == 'A': dfs(x[:-1]) if x[0] == 'B': nx = x[1:] dfs(nx[::-1])dfs(end)print(find)2. BFSfrom collecti.. 2025. 5. 11.
[파이썬] 백준 9466 : 팀 프로젝트 (골드3) [파이썬] 백준 9466 : 팀 프로젝트 (골드3)풀이방향성 생각DAG에서 사이클을 탐지하는 문제.SCC로 사이클을 탐지하는 타잔 알고리즘 사용자기 자신을 가르키는 간선은 제외해주고, scc를 구한 후 크기가 1인 scc만 자기 자신을 가르키는지 체크해주면 된다.코드import syssys.setrecursionlimit(10**6)input = lambda : sys.stdin.readline().strip()TC = int(input())for _ in range(TC): N = int(input()) arr = list(map(lambda x : int(x)-1,input().split())) G = [[] for _ in range(N)] for a,b in enumerate.. 2025. 5. 11.
[파이썬] 백준 27211 : 도넛 행성 (골드5) [파이썬] 백준 27211 : 도넛 행성 (골드5)백준 27211 : 도넛 행성 (골드5)풀이방향성 생각영역의 개수를 BFS/DFS로 세주기.영역 범위를 벗어나면 %연산을 통해서 영역 내부로 처리해주기.파이썬from collections import dequeimport sysinput = sys.stdin.readlinedires = [(1,0),(0,1),(-1,0),(0,-1)]H,W = map(int,input().split())arr = [list(map(int,input().split())) for _ in range(H)]V = [[False]*W for _ in range(H)]def bfs(x,y): V[y][x] = True Q = deque([(x,y)]) while .. 2025. 4. 24.
[파이썬] 백준 1175 : 배달 (골드1) [파이썬] 백준 1175 : 배달 (골드1)백준 1175 : 배달 (골드1)풀이방향성 생각비트마스킹 + 상태관리 BFS배달 완료한거는 비트마스킹으로, 이전 방향까지 고려해서 4차원 BFS 사용하기.혹은, C1 -> C2 / C2 -> C1 중 최소값을 고려해도 풀릴 듯 한데, 예외처리가 필요해보인다. (S.C.C 같은 경우)전체코드from collections import dequeimport sysinput = lambda : sys.stdin.readline().strip()inside = lambda x,y : 0코멘트. 쉬운문제 2025. 4. 24.