티스토리 뷰

 

# 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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함