File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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 )
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments