-
[hackerrank] Minimum Absolute Difference python공부/알고리즘 2021. 9. 9. 16:35
이번에 시험보는 넥슨 코딩테스트를 hackerrank에서 진행한다고 하여서 hackerrank에 올라와 있는 문제를 쭉 풀어보려한다.
Greedy 유형에 포함된 이문제는 list안에 있는 원소 중 2개 간의 절대값의 차이의 최소값을 구하는 문제이다.
1. 절대값의 차이가 최소라면 sort했을때 서로 가장 가까운 거리에 있겠구나! (key point)
2. sort를 하면, for문을 돌릴때 arr[i+1] - a[i]값은 당연히 양수이겠구나!
3. 또한 조금 더 시간을 줄이기 위해 arr[i+1] - a[i]가 0이되면 바로 0을 return 해주자.
4. minDif를 초기값을 무한으로 놓고 Dif와 비교해주며 갱신하자.
sort할 생각 못했으면 조금 오래 걸렸을 것 같다....
def minimumAbsoluteDifference(arr): # Write your code here arr.sort() minDif = float('inf') dif = 0 for i in range(len(arr)-1): dif = arr[i+1] - arr[i] if minDif > dif: minDif = dif continue return minDif
728x90'공부 > 알고리즘' 카테고리의 다른 글
[hackerrank] Marc's Cakewalk python (0) 2021.09.10 [hackerrank] Grid Challenge python (0) 2021.09.10 [python] Codility Lesson 9-3. MaxDoubleSliceSum (0) 2021.09.09 [python] Codility Lesson 9-2. MaxSliceSum (0) 2021.09.09 [python] Codility Lesson 9-1. MaxProfit (0) 2021.09.08