Part2.8_탐색&시뮬레이션_곶감(모래시계)

Eugenius1st·2022년 1월 10일
0

Python_algorithm

목록 보기
3/83

내가 쓴 코드

pop 과 append 랑 inset 이용

#1. Alt+W+N 입력하고 Alt+W+V :

import sys
sys.stdin = open("input.txt", "rt")

n = int(input())

a = [list(map(int,input().split()))for _ in range(n)]
         # 0이면 왼쪽, 1이면 오른쪽
m = int(input())

for i in range(m):
    x, y, z = map(int,input().split())

    for j in range(z):
        if y == 1:
            tmp = a[x-1][n-1]
            a[x-1].pop()
            a[x-1].insert(0,tmp)
        else:
            tmp = a[x-1][0]
            a[x-1].pop(0)
            a[x-1].append(tmp)
stdNum = n//2
p = 0
sum = 0

for i in range(n):
    for j in range(p, n-p):
        sum += a[i][j]
    if i < stdNum:
        p += 1
    else:
        p -=1


print(sum)

100점 맞았다 ㅜㅜ

선생님 코드

#1. Alt+W+N 입력하고 Alt+W+V :

import sys
sys.stdin = open("input.txt", "rt")

n = int(input())

a = [list(map(int,input().split()))for _ in range(n)]
         # 0이면 왼쪽, 1이면 오른쪽
m = int(input())

for i in range(m):
    h,t, k = map(int,input().split())
    if t==0:
        for _ in range(k):
            a[h-1].append(a[h-1].pop(0))
    else:
        for _ in range(k):
            a[h-1].insert(0, a[h-1].pop())
            #a[h-1]의 맨 뒷자리 값을 꺼내어 0번 인덱스에 넣어준다 

res = 0
s =0
e = n-1

for i in range(n):
    for j in range(s, e+1):
        res+=a[i][j]
    if i < n//2:
        s += 1
        e -= 1
    else:
        s -= 1
        e += 1

print(res)

한번에 줄인 것과
변수 줄인것...참고 메모..
다음번에 나도 변수를 최대한 줄이는 방법을 다시 생각해보고 올려보자

profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글