본문 바로가기
알고리즘

[python] 2차원 리스트 원소 여러개 수정

by Alan_Kim 2025. 3. 16.
728x90
반응형

 

주사위 움직임으로 배열 변경 될 때 알고리즘 짜기

주사위가 회전하여 숫자의 위치가 변할 때 리스트의 여러 원소를 변화 시켜야한다.

이 때 리스트 원소를 수정할 때 편한 방법을 정리한다.

주사위 밑에 숫자를 가지고 푸는 알고리즘이 많다

# 주사위 아래에서 봤을 때 숫자들 (맨 위에 숫자를 제외) -> 즉 6이 주사위 아래 숫자일 때 이야기
dice = [
[0,5,0],
[4,6,3],
[0,2,0]
]

def cur_eyes():
    return dice[1][1]


def move(d):
    if d == 'L':
        dice[1] = [7-cur_eyes(), dice[1][0], dice[1][1]]
    elif d == 'R':
        dice[1] = [dice[1][1], dice[1][2], 7-cur_eyes()]
    elif d == 'U':
        [dice[0][1], dice[1][1], dice[2][1]] = [7 - cur_eyes(),dice[0][1], dice[1][1]]
    elif d == "D":
        [dice[0][1], dice[1][1], dice[2][1]] = [dice[1][1], dice[2][1], 7 - cur_eyes()]

 

 

알고리즘에서 핵심 내용

2차원 리스트에서 리스트 원소를 수정할 때 move(d) 함수와 같이 수정할 수 있다. 즉 여러개의 원소를 한번에 수정할 수 있다.

그동안 반복문을 사용하거나 하나씩 코드를 적었던 것 같은데 알아두도록 하자

728x90
반응형

댓글