티스토리 뷰
# List comprehension을 사용한 알고리즘
def rotate_90_degree_1(arr):
col_len = len(arr)
ret = []
for i in range(col_len):
ret.append(list(reversed([l[i] for l in arr])))
return ret
# 일반적으로 작성하는 알고리즘
def rotate_90_degree_2(arr):
row_len, col_len = len(arr), len(arr[0])
ret = [[0] * row_len for _ in range(col_len)]
for i in range(col_len):
for j in range(row_len):
ret[i][j] = arr[row_len - j - 1][i]
return ret
time.time()을 이용한 시간 측정 결과(2000 x 2000짜리 2차원 배열):
| Python 3.6.8 | PyPy 7.3.1 | |
| 1번 알고리즘 | 1.80(초) | 4.05 |
| 2번 알고리즘 | 0.51 | 0.42 |
PyPy3의 승리!
'알고리즘' 카테고리의 다른 글
| [Python] Python의 반올림 (0) | 2020.08.24 |
|---|---|
| Codeforces Round #618 (Div. 2) (0) | 2020.02.26 |
| Codeforces Round #612 (Div. 2) (0) | 2020.01.19 |
| Good Bye 2019 (0) | 2020.01.12 |
| Codeforces Round #610 (Div. 2) (0) | 2020.01.05 |
