Skip to content

Commit c273a40

Browse files
Merge pull request #1503 from CodingTestStudy2/최원준
[최원준] Day14
2 parents 0bb6640 + 351b934 commit c273a40

2 files changed

Lines changed: 54 additions & 0 deletions

File tree

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#
2+
3+
'''
4+
1. 아이디어 :
5+
왼쪽부터 오른쪽(left_max), 오른쪽부터 왼쪽(right_max)으로 가면서 만나는 숫자들의 최대값을 저장하는 배열을 만듭니다.
6+
nums를 순회하면서 left_max[i]보다 크거나 right_max[i]보다 크면 후보에 포함합니다.
7+
8+
2. 시간복잡도 :
9+
O(n)
10+
11+
3. 자료구조/알고리즘 :
12+
-
13+
14+
'''
15+
16+
17+
class Solution:
18+
def findValidElements(self, nums: list[int]) -> list[int]:
19+
n = len(nums)
20+
left_max = [0] * n
21+
right_max = [0] * n
22+
23+
for i in range(n-1):
24+
left_max[i+1] = max(left_max[i], nums[i])
25+
right_max[n-i-2] = max(right_max[n-i-1], nums[n-i-1])
26+
27+
return [nums[i] for i in range(n) if nums[i] > left_max[i] or nums[i] > right_max[i]]
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#
2+
3+
'''
4+
1. 아이디어 :
5+
도착지점에 유령이 나보다 먼저 도착한다면 무조건 잡힙니다.
6+
(도착지첨과 나의 거리)가 모든 (도착지점과 유령 거리)보다 클때만 잡히지 않습니다.
7+
8+
2. 시간복잡도 :
9+
O(n)
10+
11+
3. 자료구조/알고리즘 :
12+
-
13+
14+
'''
15+
16+
17+
class Solution:
18+
def escapeGhosts(self, ghosts: List[List[int]], target: List[int]) -> bool:
19+
my_distance = self.calculate_distance([0,0], target)
20+
for ghost in ghosts:
21+
distance = self.calculate_distance(ghost, target)
22+
if distance <= my_distance:
23+
return False
24+
return True
25+
26+
def calculate_distance(self, start: List[int], dest: List[int]) -> int:
27+
return abs(start[0]-dest[0]) + abs(start[1]-dest[1])

0 commit comments

Comments
 (0)