Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 25 additions & 14 deletions live12/test122/문제2/박희경.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,30 @@

input = sys.stdin.readline

n = int(input())
n, m = map(int, input().split())
area = []
for _ in range(n):
area.append(list(map(int, input().split())))

prefix_sum = [[0] * (m + 1) for _ in range(n + 1)]
for i in range(1, n + 1):
for j in range(1, m + 1):
prefix_sum[i][j] = prefix_sum[i-1][j] + prefix_sum[i][j-1] - prefix_sum[i-1][j-1] + area[i-1][j-1]

k = int(input())
sensor = list(map(int, input().split()))
sensor.sort()
for _ in range(k):
x1, y1, x2, y2 = map(int, input().split())
result = prefix_sum[x2][y2] - prefix_sum[x1 - 1][y2] - prefix_sum[x2][y1 - 1] + prefix_sum[x1-1][y1-1]
print(result)

res, cnt = 0, 1
for i in range(n):
if i % 2 != 0:
if i == n - 1: abs(sensor[i] - sensor[i-1])
else:
res += min(abs(sensor[i] - sensor[i-1]), abs(sensor[i+1] - sensor[i]))
else:
if cnt < k:
cnt += 1
print(res)
"""
4 4
9 14 29 7
1 31 6 13
21 26 40 16
8 38 11 23
3
1 1 3 2
1 1 1 4
1 1 4 4
"""
42 changes: 42 additions & 0 deletions live12/test123/문제1/박희경.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import sys

input = sys.stdin.readline

g = int(input())
p = int(input())

gate = [i for i in range(g + 1)]

# gi 이하에서 가장 가까운 사용 가능한 지점 찾기
def find(x):
if gate[x] != x: # 이미 다른 비행기가 도킹한 경우
gate[x] = find(gate[x])
return gate[x]

def union(x, y):
x = find(x)
y = find(y)
gate[x] = y

cnt = 0
for _ in range(p):
gi = int(input())
first = find(gi)
if first == 0: # 도킹 불가
break
union(first, first-1)
cnt += 1

print(cnt)


"""
4
6
2
2
3
3
4
4
"""
21 changes: 21 additions & 0 deletions live12/test123/문제2/박희경.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import sys

input = sys.stdin.readline

n = int(input())
lines = []
for _ in range(n):
x, y = map(int, input().split())
lines.append([x, y])

lines.sort()

length = 0
start, end = lines[0][0], lines[0][1]
for i in range(1, n):
if lines[i][0] <= end and lines[i][1] <= end: # 완전 겹치는 경우
continue
elif lines[i][0] <= end and lines[i][1] > end: # 약간 겹치는 경우 (끝점이 더 길 경우)
end = lines[i][1]
else: # 안 겹치는 경우
length