코딩테스트

[이것이 코딩테스트다] 미로찾기

eunGI 2022. 7. 12. 01:08

먼저 입력 값을 입력받는 부분을 자세히 살펴보겠다.

먼저 경로의 행과 열 값을 입력 받는다. 한 번에 두 개의 값을 입력받고 map 함수로 나누어서 저장한다.

그 후 행의 수만큼 열의 값을 입력받아 graph 리스트에 저장한다. 해당 부분을 아래에서 자세히 보겠다.

* for 문에서 언더스코어 사용: for문 인덱스가 딱히 필요없는 경우 사용한다. (함수 이름 짓는게 무의미한 경우라던가, 임시로 값을 저장한다던가, 인터프리터에서 마지막 값 저장할 때 등등 언더스코어 사용)

 

다음과 같이 "101010" 문자열에 int 함수를 적용시켜서 문자열을 int 형으로 바꾸었다.

* map 함수는 두번째에 온 인자에 첫번째 인자로 온 함수를 적용시켜주는 함수이다.

 

그 후 list() 함수로 감싸서 int 형으로 바뀐 101010을 한 글자씩 쪼개서 리스트에 저장되도록 하였다.

* list 함수 인자에 문자열을 넣으면 한글자씩 쪼개서 리스트에 저장한다.

 

다음으로는 변수 값을 하나하나 확인해보면서 코드를 이해해봤다,,

 

이제 코드는 다 이해했는데 해당 문제를 BFS를 이용해서 풀 수 있는 이유가 이해가 안 감

BFS가 시작 지점에서 가까운 노드부터 차례로 그래프의 모든 노드를 탐색하기 때문에 해당 문제에 적합하다고 책에 나와있는데 가까운 노드가 모두 1이면 모든 노드를 다 탐색하고 돌고돌아 목적지에 가게 되는거 아닌가??라는 생각이 들어서

 

3 3

111

111

111 의 경우에 대해서 생각해봤다.. 

 

graph 리스트 마지막에 출력해보니까 문제 좀 이해됨