[Baekjoon]2210デジタル版ジャンプPython


🏷 質問する



💡 コード#コード#

from sys import stdin

def find(x,y,s):
    s += str(num_board[x][y])
    case = [[-1,0],[1,0],[0,-1],[0,1]]
    # 문자열 길이가 6이면 즉시 리턴
    if len(s) == 6:
        res_list.append(s)
        return 
    for c in range(4):
        newx, newy = x+case[c][0], y+case[c][1]
        # 범위확인
        if 0 <= newx < 5 and 0 <= newy < 5:
            find(newx,newy,s)

res_list = []
num_board = []
for _ in range(5):
    b = list(map(int,stdin.readline().split()))
    num_board.append(b)

for row in range(5):
    for col in range(5):
        s = ''
        find(row,col,s)

# 중복 제거
res_list = set(res_list)
print(len(res_list))

📌


私が近づく方法!!
文字列の長さが6になるまで、グラフィックをナビゲートします.
長さが6の場合は、set()を使用して結果値に重複データを消去し、最終結果値の長さを出力します.
  • 0で始まる文字列も処理するので、文字列の作成時に数字を文字に変換します.
  • は、最後にset()を使用して、リスト内の要素の重複を除去する.
    💡 Listは要素を追加するときにappend()を使用しますが、setはadd()を使用します!