자료구조와 알고리즘/개인적인 코딩테스트 관련 풀이
[탐색][시뮬레이션] - 곶감(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() 리스트의 맨 뒤에 요소를 빼냄