코딩테스트 준비
프로그래머스(단어변환) with python
Grey Kang
2021. 2. 24. 14:39
반응형
이 문제의 경우 우선 탐색법을 생각해보아야 한다. dfs/bfs 즉 깊이 우선을 사용할 지 너비 우선을 사용할 지를 생각해보아야 한다. 이 문제에서 주어진 조건을 따져보았을 때 연결성을 판단하기 보다는 target까지 도달하는 깊이가 중요한 문제이기 때문에 dfs를 이용하여 풀게 되었다.
먼저 변환할 수 없는 경우 0을 리턴하는 초기 조건을 작성해주어야 한다
그 후, check 함수는 변환이 가능한 지 여부를 확인하는 함수이며, 기존값과 비교할 대상의 값을
비교하여 string 배열에서 문자 하나만 다를 경우 True를 return해주게 된다
본격적인 dfs 함수이며, 이 때 정답일 경우 result 배열에 값을 할당해준다
그리고 words 배열을 돌며 check 함수를 호출해주고, 이 때 deep copy를 통해 배열을 카피해주고 words 배열에서 비교할 대상으로 찾은 값을 제거해준다. 그리고 다시 재귀함수를 통해 문자, words 배열, answer값이 변경된 형태를 parameter로 전달해주면 된다
그리고 마지막으로는 result 배열의 최소값을 return 해주면 결과가 나온다
반응형