Skip to content

Commit d69b14f

Browse files
authoredAug 24, 2023
Update README.md
1 parent 1eadd36 commit d69b14f

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed
 

‎0055-jump-game/README.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
4040
## 풀이 과정
4141

42-
1. 배열 요소가 1개 인지 체크한다. 배열 요소가 1개면 이미 배열의 끝에 도달했기 때문에 return true 처리 후 로직을 종료한다.
42+
1. 배열 요소가 1개 인지 체크한다. 배열 요소가 1개면 이미 배열의 끝에 도달했기 때문에 `return true` 처리 후 로직을 종료한다.
4343
```python
4444
if len(nums) == 1:
4545
return True
@@ -50,39 +50,39 @@
5050
move = nums[0]
5151
```
5252

53-
3. 현재 이동 가능한 범위가 배열의 크기보다 큰지 체크한다. 해당 조건에 맞으면 바로 배열의 끝으로 이동 가능하므로 return true 처리 후 로직을 종료한다.
53+
3. 현재 이동 가능한 범위가 배열의 크기보다 큰지 체크한다. 해당 조건에 맞으면 바로 배열의 끝으로 이동 가능하므로 `return true` 처리 후 로직을 종료한다.
5454
```python
5555
if move >= len(nums) - 1:
5656
return True
5757
```
5858

59-
4. 현재 이동 가능한 범위가 배열의 크기보다 작으면 while 문을 시작한다.
59+
4. 현재 이동 가능한 범위가 배열의 크기보다 작으면 `while` 문을 시작한다.
6060
```python
6161
while move <= len(nums):
6262
```
6363

6464
5. 현재 위치에서 더 이동할 수 있는지 여부를 체크한다. 더 이동할 수 있다면 `move` 변수를 다시 이동 가능한 범위만큼 이동시킨다.
6565
```python
6666
if nums[move] == 0:
67-
# 더 이동할 수 없는 경우 이전 위치로 돌아가면서 확인
67+
# 더 이동할 수 없는 경우 이전 위치로 돌아가면서 확인
6868
else:
69-
move += nums[move]
69+
move += nums[move]
7070
```
7171

72-
6. 현재 위치에서 더 이동할 수 없다면 이전 위치로 돌아가면서 확인하는 로직을 작성한다. `move` 변수를 -1 만큼 이동시키는 for-in 문을 선언하고, 이전 위치에서 현재 위치로 도달 가능한지 여부를 체크하는 조건문을 작성한다. 조건이 참이면 `move` 변수를 진행 가능한 위치로 업데이트한다. for-in 문이 종료되어 더 이상 진행 불가능한 상황이 되면 return false 로 로직을 종료한다.
72+
6. 현재 위치에서 더 이동할 수 없다면 이전 위치로 돌아가면서 확인하는 로직을 작성한다. `move` 변수를 `-1` 만큼 이동시키며 순회하는 `for-in` 문을 선언하고, 이전 위치에서 현재 위치로 도달 가능한지 여부를 체크하는 조건문을 작성한다. 조건이 참이면 `move` 변수를 진행 가능한 위치로 업데이트한다. `for-in` 문이 종료되어 더 이상 진행 불가능한 상황이 되면 `return false` 로 로직을 종료한다.
7373
```python
74-
for i in range(move - 1, -1, -1):
75-
# 이전 위치에서 현재 위치로 도달 가능한지 확인
76-
if i + nums[i] > move:
77-
# 진행 가능한 위치로 업데이트
78-
move = i + nums[i]
79-
break
80-
74+
for i in range(move - 1, -1, -1):
75+
# 이전 위치에서 현재 위치로 도달 가능한지 확인
76+
if i + nums[i] > move:
77+
# 진행 가능한 위치로 업데이트
78+
move = i + nums[i]
79+
break
80+
8181
else:
8282
return False
8383
```
8484

85-
7. while 문이 종료될 때 까지 배열의 마지막에 도달하지 못한 경우엔 return false 처리 후 로직을 종료한다.
85+
7. while 문이 종료될 때 까지 배열의 마지막에 도달하지 못한 경우엔 `return false` 처리 후 로직을 종료한다.
8686
```python
8787
return False
8888
```
@@ -137,7 +137,7 @@ class Solution(object):
137137

138138
## 1차 수정
139139

140-
1. [1,2,3] 혹은 [1,3,2] 같은 테스트 케이스에서 배열의 중간 요소가 배열의 크기보다 커질 때, while 문 바깥으로 탈출하여 return false 로 처리되었다. 그래서 이동 가능한 범위가 배열의 크기보다 큰지 체크하는 조건문을 while 문 아래로 옮겨서 해당 케이스를 통과할 수 있도록 처리하였다.
140+
1. `[1,2,3]` 혹은 `[1,3,2]` 같은 테스트 케이스에서 배열의 중간 요소가 배열의 크기보다 커질 때, `while` 문 바깥으로 탈출하여 `return false` 로 처리되었다. 그래서 이동 가능한 범위가 배열의 크기보다 큰지 체크하는 조건문을 `while` 문 아래로 옮겨서 해당 케이스를 통과할 수 있도록 처리하였다.
141141
```python
142142
if move >= len(nums) - 1:
143143
return True
@@ -193,8 +193,8 @@ class Solution(object):
193193
## 시간, 공간 복잡도
194194

195195
### 시간 복잡도: `O(n) + O(n)` = `O(n)`
196-
- while 문이 len(nums) 만큼 순회하므로 `O(n)` 의 시간 복잡도를 가진다.
197-
- for-in 문은 현재 위치에서 이전 위치까지의 거리만큼만 반복하면 되므로 `O(n)` 의 시간 복잡도를 가진다.
196+
- `while` 문이 `len(nums)` 만큼 순회하므로 `O(n)` 의 시간 복잡도를 가진다.
197+
- `for-in` 문은 현재 위치에서 이전 위치까지의 거리만큼만 반복하면 되므로 `O(n)` 의 시간 복잡도를 가진다.
198198

199199
### 공간 복잡도: `O(1)`
200200
- 주어진 배열 `nums` 에서 계산 및 수정 작업을 수행하므로 `O(1)` 의 공간 복잡도를 가진다.

0 commit comments

Comments
 (0)
Please sign in to comment.