[Programmers]深度/幅優先ナビゲーション>ターゲット番号
5355 ワード
今回は,まず深さ/幅ナビゲーションの問題を解く.
ソース:プログラマ
https://programmers.co.kr/learn/courses/30/lessons/43165
リストを使用して、指定した数値を数値から減算し、リストの最新部分に追加します.次に、すべてのプロセスが終了した後、リストの数字をtargetと比較して、答えを求めます.
比較の結果,両コードは正確性は同じであったが,コードを実行する時間とメモリに差があった.
[Programmers]深度/幅優先ナビゲーション>ターゲット番号
ソース:プログラマ
https://programmers.co.kr/learn/courses/30/lessons/43165
問題を解く
リストを使用して、指定した数値を数値から減算し、リストの最新部分に追加します.次に、すべてのプロセスが終了した後、リストの数字をtargetと比較して、答えを求めます.
def solution(numbers, target):
answer = 0
prev_list = [-numbers[0], numbers[0]]
for i in range(1, len(numbers)):
next_list = []
for v in prev_list:
num = v
next_list.append(num-numbers[i])
next_list.append(num+numbers[i])
prev_list = next_list
for k in prev_list:
if k == target:
answer += 1
return answer
テスト結果
他人の解答
def solution(numbers, target):
if not numbers and target == 0 :
return 1
elif not numbers:
return 0
else:
return solution(numbers[1:], target-numbers[0]) + solution(numbers[1:], target+numbers[0])
再帰関数を使用して解放された結果を示した.比較の結果,両コードは正確性は同じであったが,コードを実行する時間とメモリに差があった.
Reference
この問題について([Programmers]深度/幅優先ナビゲーション>ターゲット番号), 我々は、より多くの情報をここで見つけました https://velog.io/@yh20studio/Programmers-깊이너비-우선-탐색-타겟-넘버テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol