첫번째 코드
먼저 차근차근하게 input들을 알맞게 넣는다!
그리고 grids를 구성하는 방법을 생각했다.
사실 0과 1로 구성된 그리드를 그대로 작성한 후 1을 0으로 바꾸는 작업을 하려고 생각해보니
각 행별 합을 구한 후 1을 빼는 형식이 훨씬 용량도 적게 사용할 것 같다는 생각이 들었다.
하여 grids 안에 각 행별 1의 값을 더한 값들을 넣었다.
그리고 girds리스트의 원소 안에 l1부터 r1까지의 값들을 1씩 빼고
같은 방법으로 l2부터 r2까지의 값들을 1씩 뺀다.
이 다음에 음수로 구성된 숫자가 있을 수 있으므로 해당 숫자를 모두 0으로 바꾼 뒤
전체 남은 개수를 더한다!
이때 인덱싱에 주의하도록 하자!
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
grids = []
for _ in range(n):
now_grid = list(map(int, input().split()))
grids.append(sum(now_grid))
grids.insert(0, 0)
l1, r1 = map(int, input().split())
l2, r2 = map(int, input().split())
grids[l1:r1+1] = [x-1 for x in grids[l1:r1+1]]
grids[l2:r2+1] = [x-1 for x in grids[l2:r2+1]]
for i in range(len(grids)):
if grids[i] < 0:
grids[i] = 0
print(sum(grids))
통과!
사실 softeer 문제를 처음 풀어서 많이 쫀 것도 사실이다...
이전에 코테 문제를 보지도 않았을 때 현대 코딩테스트를 경험했는데...
그때 굉장히 어렵고 새로운 분야라는 생각이 들어서...
이제라도 차차 준비하도록 하자!
링크
https://softeer.ai/practice/9657