DFS 4

[DFS, 백트래킹, 조합] 프로그래머스 lv.2 양궁 대회

프로그래머스 lv.2 양궁 대회문제 바로가기문제 요약어피치가 양궁을 먼저 다 쐈다. 화살의 수와 어피치의 과녘 현황을 입력값으로 줬을 때, 라이언이 어떻게 과녘을 맞춰야 최대 점수차이로 이길 수 있는지 반환해라.주의할 점최대 점수 차이가 같을 경우, 낮은 점수에 많이 맞은 경우를 답으로 처리한다.배열에 해당하는 과녘은 10점 과녘부터 0점까지 순서대로 주어진다.문제 접근완전 탐색에 조기종료 조건이 가능하므로 DFS를 사용한 백트래킹과녘의 수가 고정되어 있기 때문에 점수 현황을 고정 길이의 배열로 만들어서 과녘의 선택/ 미선택 두개의 정보를 담을 수 있다.조기 종료 조건 (유망함수)남은 화살이 더이상 없을 때.과녘의 끝에 다다랐을 때.오답노트1. recursive overflow 에러 발생.- DFS 접근..

[DFS, BFS] 백준 1260. DFS와 BFS

깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) BFS 코드의 프레임 특징 from collections import deque ... def BFS(v): q = deque() q.append(v) while q: p = q.popleft() print(p) from collections import deque import sys sys.stdin = open('C:\\tech\\backjoon\\graph\\input3.txt','r') input = sys.stdin.readline res = [] def DFS(node): visit1[node] = 1 line = graph[node] for i in range(1,n+1): if line[i] == 1 and visit1[i] == 0: i..

⚡️algorithm 2022.05.02

[DFS, 기본] 백준 2667. 단지번호 붙이기

import sys sys.stdin = open('graph input.txt', 'rt') input = sys.stdin.readline size = int(input()) graph = [list(map(int, input().rstrip())) for _ in range(size)] print(graph) apt = [] dx = [1,-1,0,0] dy = [0,0,1,-1] def DFS(x,y): global cnt if 0 탐색 시간복잡도 단지수(V) : N**2 연결(E) : 4*N**2 O(V+E) : 5N**2 => N*2 => 25\*2 => 625 : 2억보다 작음 자료구조 리스트? visited => graph 문제 접근하는 루틴을 연습해봤다. 추가..

[DFS] 백준 1012. 유기농 배추 (feat. return, 가로 세로)

그래프 탐색하면서 한 구역인 애들 묶으면 총 몇 구역인지 세는 문제다. 아 행렬 위치가 너무 헷갈린다. graph[x][y]랑 가로m, 세로n이 너무 헷갈려서 index에러 때문에 고생했다. 우선, 문제의 함정인 행과 열, 가로와 세로 에 대해서 서술하고, 왜 이 문제를 다른 분들의 답코드를 봤음에도 1시간 이상이 걸리며 return한테 혼쭐난 과정을 자세하게 풀어보겠다. 행과 열, 가로와 세로 matrix = [[a,b,c],[A,B,C]] 가 있다고 하자. 이 이차원 배열을 각각 다른 말로 표현해보겠다. 배열 표현하기 2행 3열의 배열 가로 길이 3, 세로 길이 2의 좌표 0 >> 정답, 사실상 1try와 같아야 한다고 생각했는데 정답. 머리가 먼저냐 꼬리가 먼저냐라서 결과가 다르게 나오면 안된다. ..

카테고리 없음 2022.04.25
1