백준파이썬(3)
-
[Python] 🥈 백준 2583 영역구하기 / DFS & BFS 그림 풀이
2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 문제 풀기 전 생각하기 문제 풀기 전 어려웠던 점이 보통 [0,0] 은 왼쪽 위에부터 시작해서 아래로 내려가는 형식인데 아래에서부터 위로 숫자가 커지는 형식이라 그래프를 어떻게 생각해야될지 헷갈렸다.... 그래서 그냥 표를 돌려서 생각했다 그림을 오른쪽으로 돌리면 우리가 평소에 많이 봤던 좌표가 보인다! 그렇다면 다음 문제는 꼭짓점으로만 주어지는 영역을 어떻게 채우냐인데..... 그림을 그려서 꼭짓점과 실제 표의 좌표를 비교해보니 왼쪽 위 꼭..
2024.02.12 -
[Python]🥇 15686번 치킨 배달 / 조합과 3중 for문을 이용한 풀이 및 문제 해설
예제 입력 1 5 3 0 0 1 0 0 0 0 2 0 1 0 1 2 0 0 0 0 1 0 0 0 0 0 0 2 예제 출력 1 5 예제 입력 2 5 2 0 2 0 1 0 1 0 1 0 0 0 0 0 0 0 2 0 0 1 1 2 2 0 1 2 예제 출력 2 10 예제 입력 3 5 1 1 2 0 0 0 1 2 0 0 0 1 2 0 0 0 1 2 0 0 0 1 2 0 0 0 예제 출력 3 11 문제 해석 치킨집을 m개 골랐을 때, 각 집(1)에서 가장 가까운 치킨거리를 찾고 그걸 모두 더해라! 그 중 가장 작은 값을 골라라 즉, 1에서 갈 수 있는 가장 가까운 2와의 거리를 찾고 그걸 모두 합하는 구현 문제! 또한 문제 범위가 작고, 그 중 m개를 선택한다면 조합을 떠올리자! 치킨집의 위치가 (x1, y1)이고..
2024.02.07 -
[Python] 🥈백준 트리의 부모 찾기 - 11725 /DFS 알고리즘
예제 입력 1 7 1 6 6 3 3 5 4 1 2 4 4 7 예제 출력 1 4 6 1 3 1 4 아이디어 생각하기 그래프를 만들고, 방문여부를 체크하는 배열 visited를 선언한다. 루트 v를 dfs() 인수로 넘겨 V와 연결된 다른 노드를 재귀적으로 방문한다. for문으로 그래프를 도는데, 만약 visited[v]가 비어있다면, visited했다는 의미의 True가 아닌, 탐색을 시작한 값 즉, 부모를 넣어준다. 그리고 다시 재귀한다. 결국, dfs를 기존 그대로구현하고, visited에는 방문여부대신, v를 넣어주면 된다! 기존의 로직을 헷갈릴 것 같아서 변수명은 그대로 visited로 냅두고 진행하겠다 원한다면 father, parents 등으로 바꿔보자.... 주의사항 graph = [[0] *..
2023.02.19