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
반응형
'알고리즘' 카테고리의 다른 글
재귀와 반복의 차이 (0) | 2025.04.14 |
---|---|
[python] XOR 문제 해결 (0) | 2025.04.12 |
[python] 파이썬에서 제곱사용할 시 pow(), math.pow(), ** type 차이 (0) | 2025.03.17 |
[python] 백준 19238 스타트 택시 (0) | 2023.06.22 |
[python] 백준 12904 A와 B (0) | 2023.03.18 |
댓글