자료구조와 알고리즘/개인적인 코딩테스트 관련 풀이

[탐색][시뮬레이션] - 곶감(2차원 List)

얄루몬 2022. 7. 6. 19:40

문제

  • 주어진 2차원 리스트를 정해진 룰에 따라 회전한 뒤 모래시계 모양으로 출력하라
  • a, b, c = 행 정보, 0이면 왼쪽 1이면 오른쪽으로 회전, 횟수(3면 3만큼 회전)

문제 풀이

import sys
sys.stdin=open("input.txt", "r")
n = int(input())
gotgam = [list(map(int,input().split())) for _ in range(n)]

m = int(input())
for _ in range(m):
    a,b,c = map(int,input().split())

    if b == 0: #왼쪽으로 돌 경우
        #맨 앞의 숫자를 빼서 맨 뒤로 돌려 보내주는 작업을 c번 해야 한다.
        for _ in range(c):
            gotgam[a-1].append(gotgam[a-1].pop(0))
    else:#오른쪽으로 돌 경우
        #맨 뒤의 숫자를 빼서 맨 앞으로 추가해주어야 한다.
        for _ in range(c):
            gotgam[a-1].insert(0, gotgam[a-1].pop())


s = 0
e = n-1
result = 0
for i in range(n):
    for j in range(s, e+1):
        result += gotgam[i][j]
    if i < n//2:
        s += 1
        e -= 1
    else:
        s -= 1
        e += 1
print(result)
  • append( ) 리스트 끝에 해당 요소를 추가
  • pop(0) 맨 첫번째 요소를 빼냄
  • insert(원소를 추가할 index, 추가할 원소)
  • pop() 리스트의 맨 뒤에 요소를 빼냄