Leetcode#1_02w03 Code Review 결과 정리
솜씨좋은장씨
·2020. 2. 22. 18:02
1. Reverse Integer
- 제곱을 만드는 함수 : pow
사용 예시 ) 2^31 => pow(2, 31) / -2^31 => pow(-2, 31)
추측 : pow가 ** 방식으로 제곱을 만드는 것 보다 빠를것 같다
테스트!
import time
pow_times = []
two_star_times = []
for i in range(10):
startTime = time.time()
nZegob = pow(i, 31)
endTime = time.time() - startTime
pow_times.append(endTime)
for i in range(10):
startTime2 = time.time()
nZegob2 = i ** 31
endTime2 = time.time() - startTime2
two_star_times.append(endTime2)
for i in range(10):
if pow_times[i] > two_star_times[i]:
print("False", pow_times[i], two_star_times[i])
elif pow_times[i] == two_star_times[i]:
print("Same", pow_times[i], two_star_times[i])
else:
print("True", pow_times[i], two_star_times[i])
결과 : 항상 그런 것 같지는 않으며 상황에 따라서 다른 것으로 보임.
2. Add Two Numbers
- string도 [::-1] 라고 하면 reversed라고 하지 않아도 가능
- Linked List 이해하기
( 이미지는 추후 KeyNote로 만들어서 올려볼게요오)
추측 : string[::-1] 방식으로 문자열을 뒤집는 것이 더 빠를 것이다.
테스트!
import time
two_semi_times = []
list_sorted_times = []
reversed_names_1 = []
reversed_names_2 = []
names = ["SOMJANG", "idEANS", "SolSol", "Magician", "dum_yroot", "ssom", "JiyoungPark", "HyeonaKim", "SolPark", "DongHyunJang"]
for i in range(10):
startTime = time.time()
reversedName = names[i][::-1]
reversed_names_1.append(reversedName)
endTime = time.time() - startTime
two_semi_times.append(endTime)
for i in range(10):
startTime2 = time.time()
reversedName2 = reversed(list(names[i]))
reversed_names_2.append(reversedName2)
endTime2 = time.time() - startTime2
list_sorted_times.append(endTime2)
for i in range(10):
if two_semi_times[i] > list_sorted_times[i]:
print("False", two_semi_times[i], list_sorted_times[i])
elif two_semi_times[i] == list_sorted_times[i]:
print("Same", two_semi_times[i], list_sorted_times[i])
else:
print("True", two_semi_times[i], list_sorted_times[i])
결과 : 대부분 [::-1] 방식이 빨라보이지만 소수점 6개 아래에서 차이나는 것으로 보아 큰 차이는 없는 것으로 보임.
- 자료구조에 대한 이해도 필요함 -> linked list, stack, queue 등
'우리가 공부한 것 들 > 알고리즘' 카테고리의 다른 글
Leetcode#4_ZigZag Convention_05wk02 by SOMJANG (0) | 2020.05.13 |
---|---|
Leetcode#3_Longest Substring Without Repeating Characters _05wk01 by SOMJANG (0) | 2020.05.11 |
Leetcode#1_Add Two Numbers_02w03 by SOMJANG (0) | 2020.02.20 |
Leetcode#1_Reverse Integer_02w03 by SOMJANG (0) | 2020.02.20 |