[Python] 파이썬/Leetcode_Easy

[Leetcode] 1200. Minimum Absolute Difference (In Python)

두부군_ 2021. 12. 20. 22:44

코드들은 https://github.com/Eastar-DS/Python/tree/main/Leetcode의 Easy_Problem.py 파일에도 있습니다.

 

 

 

처음 푼 코드. 

1. 정렬한다.

2. min값 잡으면서 output에 모든 diff들을 넣는다. (최솟값은 무조건 바로옆에있는걸 빼는거니까.)

3. output에서 min값만 남긴다.

 

Easy 난이도이기도하고 결과가 속도가 느려서 좀더 늘려보려고 생각해보았다.

1.정렬한다.

2. minimum값을 설정하면서 여지껏 쌓아두던 output이 minimum값보다 작으면 버려버린다.

 

단계를 줄였는데도 80%속도밖에안나온다. output을 순간적으로 쌓지 않고도 만드는 방법이 있단말인가...?

 

디스커스는 3줄풀이가 있었는데 처음 풀이와 원리는 같다. 아마 코드가...

arr.sort()

minimum = min(ele2-ele1 for ele1,ele2 in zip(arr,arr[1:]))

return [[ele1,ele2] for ele1,ele2 in zip(arr,arr[1:]) if ele2-ele1 == minimum]

이런 느낌이였다. 안보고 작성한거라 오류가 날 순 있지만 유남쌩 일거라 생각한다.