[学習]2 D配列-上下左右移動の問題


上下左右の問題.

  • 旅行家AはNxNサイズの正方形空間の上に位置している.
    一番上は(1,1)一番下は(n,n)
    上下左右に移動可能で、開始位置は(1,1)
    L,R,U,D=左,右,上,あ
    入力:スペースサイズnと移動計画書の入力を受け入れる
    出力:
  • を出力し、Aが最終的に到達した点座標スペースを基準とする
    n = int(input())
    x, y = 1, 1
    plans = input().split()
    
    # U,R,D,L에 따른 이동 방향
    dx = [-1, 0, 1, 0]
    dy = [0, 1, 0, -1]
    move_types = ['U','R','D','L']
    
    # 이동 계획을 하나씩 확인하기
    for plan in plans:
        # 이동 후 좌표 구하기
        for i in range(len(move_types)): # move_types 요소 하나하나 보기
            if plan == move_types[i]: # 계획이 move_type[i] 값이랑 같으면
                nx = x + dx[i]
                ny = y + dy[i]
        # 공간을 벗어나면 무시하기
        if nx < 1 or ny < 1 or nx > n or ny > n: # 하나라도 참이면 참
            continue
        # 이동수행
        x, y = nx, ny
    
    print(x, y)
    

    解法


    <解法>
  • dx,dy,move typesは移動方向をリストに、
  • for入力された移動計画を順番に確認します.
  • デュアルfor文、move typesの各要素
  • を巡る
  • if演算を使用して、移動計画とmove type[i]位置値インデックスを比較します.
  • 両者が同じ場合、nx値に既存値+dx[i]位置値を加算
    さらにny値
  • を加える
  • およびnxおよびny値が空間から離れている場合、それらは無視される.
    if,continue,
  • に設定
  • xおよびyにnx、ny、
  • を加える
  • forは、最終x,y値をドアの外に印刷します.
  • 結果



    に感銘を与える

    엘리스アルゴリズムの試験を準備するために、董文娜がアップロードしたアルゴリズムのビデオを見ています.
    焼き上がるつもりです.感じたのは、まだ长い道のりがあることだ.自分が解けるまで繰り返すべきだと思います.