Skip to content

Commit 95bd29d

Browse files
authored
Merge pull request #632 from gmlrude/main
[박희경] 93차 라이브 코테 제출
2 parents f4fd090 + 537e06d commit 95bd29d

3 files changed

Lines changed: 57 additions & 0 deletions

File tree

live9/test93/문제1/박희경.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
"""
2+
1 (st = [1]) -> 9 (st = [9]) -> 2 -> 4 (st = [9, 4])
3+
"""
4+
def solution(number, k):
5+
answer = 0
6+
number = list(map(str, number.rstrip()))
7+
8+
stack = []
9+
10+
for num in number:
11+
if not stack:
12+
stack.append(num)
13+
continue
14+
if k > 0:
15+
while stack[-1] < num: # 다음 수가 더 클 때
16+
stack.pop()
17+
k -= 1
18+
if not stack or k <= 0:
19+
break
20+
stack.append(num)
21+
22+
if k > 0:
23+
stack = stack[:-k]
24+
25+
return ''.join(stack)

live9/test93/문제2/박희경.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
def solution(name):
2+
answer = 0
3+
4+
# 기본 최소 좌우 이동 횟수는 길이 - 1
5+
min_move = len(name) - 1
6+
7+
for i, alpha in enumerate(name):
8+
answer += min(ord(alpha) - ord('A'), ord('Z') - ord(alpha) + 1)
9+
10+
# 연속된 A의 끝나는 위치 찾기
11+
next = i + 1
12+
while next < len(name) and name[next] == 'A':
13+
next += 1
14+
15+
min_move = min([
16+
min_move, # 기존 오른쪽으로 끝까지 가는 경우
17+
2 * i + len(name) - next, # 처음부터 i까지 갔다가 뒤로 "돌아가기(*2)"
18+
i + 2 * (len(name) - next) # A 지나서 끝까지 갔다가 "돌아오기(*2)"
19+
])
20+
21+
answer += min_move
22+
return answer

live9/test93/문제3/박희경.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
def solution(routes):
2+
answer = 0
3+
camera = float('-inf')
4+
5+
routes.sort(key=lambda x: x[1])
6+
for i in range(len(routes)):
7+
if routes[i][0] > camera: # 진입 지점이 카메라보다 뒤에 있는 경우 카메라 추가해야 함
8+
answer += 1
9+
camera = routes[i][1] # 진출 지점에 카메라 설치
10+
return answer

0 commit comments

Comments
 (0)