[Python] BOJ 11735번. 정산소

11735번. 정산소

문제 링크

풀이 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 11735번. 정산소


import sys
input = sys.stdin.readline

n, q = map(int, input().split())

rcnt = 0
ccnt = 0
rdel = 0
cdel = 0
hap = n*(n+1)//2

vr = [0 for i in range(n+1)]
vc = [0 for i in range(n+1)]

'''
n*k + [1..n] 
n*k 에서는 현재까지 나온 열의 갯수를 빼주고
[1..n] 에서는 현재까지 나온 열 값의 합을 빼준다.
천천히 이해
'''

for i in range(q):
    a, b = input().split()
    b = int(b)
    if a == 'R':
        if vr[b] == 1:  # 이미 나온 쿼리 (0)
            print(0)
        else:
            vr[b] = 1  # 방문처리
            print((n-ccnt)*b + hap - cdel)
            rcnt += 1
            rdel += b
    else:
        if vc[b] == 1:  # 이미 나온 쿼리 (0)
            print(0)
        else:
            vc[b] = 1  # 방문처리
            print((n-rcnt)*b + hap - rdel)
            ccnt += 1
            cdel += b

비고