본문 바로가기

구름톤3

[구름톤 챌린지 WEEK 4 - 그래프 탐색] DAY 20. 연결 요소 제거하기 한 달간 진행됐던 구름톤 챌린지 마지막 날이다! 위 사진은 4주간 모은 캐릭터 아이템 🤣 그동안 완벽히 이해하지 못한 알고리즘 문제들도 있는데 9월 달 내로 다시 리뷰하며 풀어보는 것을 목표로 잡았다. 결과적으로 20개 블록을 모두 모았고, 시작하기 전의 내 알고리즘 실력과 지금을 비교하면 배우면서 더 성장했음을 느낀다! DAY 20. 연결 요소 제거하기 def f(y, x, d): graph[y][x] = d stack = [(y, x)] # 조건을 만족하는 연결 요소이면, 포함되는 모든 칸을 '.'으로 바꾸기 위해 해당 위치 저장할 집합 선언 # + 방문 체크 visited = set() while stack: ey, ex = stack.pop() if (ey, ex) in visited: conti.. 2023. 9. 10.
[구름톤 챌린지 WEEK 4 - 그래프 탐색] DAY 16.연합 이번 구름톤 WEEK4 주제는 그래프 탐색이다. DFS, BFS 유형 문제가 너무 약해서 백준 기본 문제부터 공부를 시작하고 응용해보고 있다. 먼저 알고리즘 스터디에서 바이러스, DFS와 BFS 문제를 풀어보며 DFS, BFS로 순회하는 법을 배웠다. 이후에 구름톤 문제를 풀어보니 이에 + 서로 연결되어 있지 않은 연합, 컴포넌트 개수를 세는 문제들이 나왔다. 처음 접하는 유형이라 해설을 참고했다. DAY 16. 연합 import sys from collections import deque input = sys.stdin.readline N, M = map(int, input().split()) graph = [[] for _ in range(N + 1)] visited = [0] * (N + 1) re.. 2023. 9. 6.
[구름톤 챌린지 WEEK 2 - 완전 탐색] DAY 9. 폭탄 구현하기(2) DAY 9. 폭탄 구현하기(2) import sys input = sys.stdin.readline n, k = map(int, input().split()) # 땅 list 만들기 ground = [] for i in range(n): ground.append(input().split()) reset_ground = [[0] * n for _ in range(n)] # 4가지 방향이랑 현재 steps = [(0, -1), (1, 0), (0, 1), (-1, 0), (0, 0)] for i in range(k): # 폭탄 좌표 받기 y, x = map(int, input().rstrip().split()) y -= 1 x -= 1 # 폭탄 투하 for step in steps: ny = y + step.. 2023. 8. 24.