Skip to content

Commit ccbfee3

Browse files
Merge pull request #651 from Yujin-Baek/main
[백유진] 97차 라이브 코테 제출
2 parents 16dc681 + 83289df commit ccbfee3

3 files changed

Lines changed: 72 additions & 0 deletions

File tree

live9/test97/문제1/백유진.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
def solution(board, skill):
2+
n = len(board)
3+
m = len(board[0])
4+
5+
acc = [[0] * (m + 1) for _ in range(n + 1)]
6+
7+
# skill 명령 누적합 배열에 저장
8+
for t, r1, c1, r2, c2, degree in skill:
9+
diff = degree if t == 2 else -degree
10+
acc[r1][c1] += diff
11+
acc[r1][c2 + 1] -= diff
12+
acc[r2 + 1][c1] -= diff
13+
acc[r2 + 1][c2 + 1] += diff
14+
15+
# 가로 누적합
16+
for i in range(n):
17+
for j in range(1, m):
18+
acc[i][j] += acc[i][j - 1]
19+
20+
# 세로 누적합
21+
for j in range(m):
22+
for i in range(1, n):
23+
acc[i][j] += acc[i - 1][j]
24+
25+
answer = 0
26+
for i in range(n):
27+
for j in range(m):
28+
board[i][j] += acc[i][j]
29+
if board[i][j] > 0:
30+
answer += 1
31+
32+
return answer

live9/test97/문제2/백유진.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
def solution(name):
2+
answer = 0
3+
4+
min_cursor = len(name) - 1
5+
6+
for idx, alphabet in enumerate(name):
7+
answer += min(ord(alphabet) - 65, 91 - ord(alphabet))
8+
9+
end = idx+1
10+
while end < len(name) and name[end] == 'A':
11+
end += 1
12+
min_cursor = min(min_cursor, idx*2 + len(name)-end, (len(name)-end)*2 + idx)
13+
14+
answer += min_cursor
15+
16+
return answer

live9/test97/문제3/백유진.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
def solution(distance, rocks, n):
2+
rocks.sort()
3+
rocks.append(distance)
4+
left, right = 1, distance
5+
answer = 0
6+
7+
while left <= right:
8+
mid = (left + right) // 2
9+
prev = 0
10+
removed = 0
11+
12+
for rock in rocks:
13+
if rock - prev < mid:
14+
removed += 1
15+
else:
16+
prev = rock
17+
18+
if removed > n:
19+
right = mid - 1
20+
else:
21+
answer = mid
22+
left = mid + 1
23+
24+
return answer

0 commit comments

Comments
 (0)