반응형 파이썬275 [Python][이코테] 미로 탈출 문제 동빈이는 N X M 크기의 직사각형 형태의 미로에 갇혀 있다. 미로에는 여러 마리의 괴물이 있어 이를 피해 탈출해야 한다. 동빈이의 위치는 (1, 1)이고 미로의 출구는 (N, M)의 위치에 존재하며 한 번에 한 칸씩 이동할 수 있다. 이때 괴물이 있는 부분은 0으로, 괴물이 없는 부분은 1로 표시되어 있다. 미로는 반드시 탈출할 수 있는 형태로 제시된다. 이때 동빈이가 탈출하기 위해 움직여야 하는 최소 칸의 개수를 구하시오. 칸을 셀 때는 시작 칸과 마지막 칸을 모두 포함해서 계산한다. 입력 조건 첫째 줄에 두 정수 N, M (4 ≤ N,M ≤ 200)이 주어집니다. 다음 N개의 줄에는 각각 M개의 정수(0 또는 1)로 미로의 정보가 주어진다. 각각의 수들은 공백 없이 붙어서 입력으로 제시된다. .. 2022. 8. 5. [Python][이코테] BFS BFS BFS - Breadth First Search 너비 우선 탐색 알고리즘이다. 즉 가까운 노드부터 탐색하는 알고리즘이라고 할 수 있다. BFS는 선입선출 방식인 '큐' 방식을 주로 이용한다. 인접한 노드를 반복적으로 큐에 넣도록 알고리즘을 작성하면 자연스럽게 먼저 들어온 것이 나가게 되어, 가까운 노드부터 탐색을 진행하게 된다. 동작 방식은 다음과 같다. 탐색 시작 노드를 큐에 삽입하고 방문 처리를 한다. 큐에서 노드를 꺼내 해당 노드의 인접 노드 중에서 방문하지 않은 노드를 모두 큐에 삽입하고 방문 처리를 한다. 2번 과정을 더이상 수행할 수 없을 때까지 반복한다. 1. 시작 노드인 1을 큐에 삽입하고 방문처리한다. 1 2. 큐에서 노드 1을 꺼내고 방문하지 않은 인접노드 2, 3, 8을 모두 .. 2022. 8. 2. [Python][이코테] 재귀함수/팩토리얼재귀 재귀함수 자기 자신을 호출하는 함수이다. 말이 어렵다 직접 코드로 보자 # 5-3 DFS,BFS 재귀 함수 def recursive_function(): print("재귀 함수를 호출합니다.") recursive_function() recursive_function() #RecursionError: maximum recursion depth exceeded while calling a Python object recursive_function() 함수 안에서 recursive_function() 함수를 호출한다. 뭐 이런 거다. 함수가 함수 본인을 호출하여 다시 함수를 실행하는 것이다. 이후 해당 함수가 종료되면 가장 마지막으로 종료된 시점의 함수의 다음 행부터 명령어를 시작한다. 하지만 위의 코드를 실.. 2022. 7. 20. [Python] TypeError: 'list' object is not callable 에러 파이썬을 쓰다 보면 종종 마주치는 에러 문장이다. map = [] for i in range(n): map.append(list(map(int, input().split()))) 위와 같이 map이라는 변수에 값들을 추가로 입력받으며 저장하려 했으나 위와 같은 에러가 출력되어서 원인을 찾게 되었다. 원인은 map이라는 변수가 파이썬에서 실제 사용하는 함수명과 동일하게 때문이다. 그러니 map이라는 변수를 다른 이름으로 변경해주면 해결된다. input_map = [] for i in range(n): input_map.append(list(map(int, input().split()))) 위와 같이 map -> input_map으로 변경시켜주니 에러가 사라지고 정상 작동되었다. 이러한 에러는 map 뿐만 .. 2022. 7. 19. 이전 1 ··· 59 60 61 62 63 64 65 ··· 69 다음 반응형