2024/07/29 4

항해99 리부트코스 알고리즘 2주 5일차 백준 10815 숫자 카드

https://www.acmicpc.net/problem/10815 def main(): import sys input = sys.stdin.read data = input().split() n = int(data[0]) # 숫자 카드의 개수 cards = set(map(int, data[1:n + 1])) # 숫자 카드 목록을 집합으로 저장 m = int(data[n + 1]) # 확인할 숫자의 개수 targets = list(map(int, data[n + 2:])) # 확인할 숫자 목록 result = [] for target in targets: if target in cards: resu..

Algorithm/백준 2024.07.29

항해99 리부트코스 알고리즘 2주 5일차 백준 2606 바이러스

https://www.acmicpc.net/problem/2606 def dfs(graph, start, visited): stack = [start] # 스택에 시작 노드를 추가 count = 0 # 방문한 노드 수를 세기 위한 변수 while stack: node = stack.pop() # 스택에서 노드를 꺼냄 if not visited[node]: # 노드가 방문되지 않았다면 visited[node] = True # 방문 처리 count += 1 # 방문한 노드 수 증가 stack.extend(graph[node]) # 노드에 연결된 노드들을 스택에 추가 return..

Algorithm/백준 2024.07.29

항해99 리부트코스 알고리즘 2주 5일차 백준 18352 특정 거리의 도시 찾기

https://www.acmicpc.net/problem/18352 from collections import dequedef find_cities_at_distance(n, m, k, x, roads): # 그래프 초기화 graph = [[] for _ in range(n + 1)] for road in roads: a, b = road graph[a].append(b) # 도로 정보로 그래프 구축 # 거리 저장 배열 초기화 distance = [-1] * (n + 1) distance[x] = 0 # 시작 도시의 거리는 0으로 설정 # BFS를 위한 큐 초기화 queue = deque([x]) while..

Algorithm/백준 2024.07.29

항해99 리부트코스 알고리즘 2주 5일차 백준 7562 나이트의 이동

https://www.acmicpc.net/problem/7562 from collections import dequedef bfs(start, end, l): # 나이트의 이동 방향 8가지 정의 directions = [(-2, -1), (-1, -2), (1, -2), (2, -1), (2, 1), (1, 2), (-1, 2), (-2, 1)] # 방문 여부를 저장하는 2차원 리스트 visited = [[False] * l for _ in range(l)] # BFS를 위한 큐, 초기 위치와 이동 횟수를 함께 저장 queue = deque([(start[0], start[1], 0)]) # (x, y, 이동 횟수) while queue: x,..

Algorithm/백준 2024.07.29