<aside>
💬 lv0
, 정렬
직선 위에 각각 점이 [1, 3, 5, 6, 10, 12, 19] 찍혀져 있을 때 두 점 사이의 거리가 가장 짧은 것은 [5, 6]입니다. 두 점 사이가 가장 짧은 쌍을 출력하는 solution함수를 완성해주세요.
입력 | 출력 |
---|---|
[1, 3, 4, 6] | [3, 4] |
[1, 10, 20, 25, 31, 40] | [20, 25] |
[1, 3, 4, 6]이 입력되었을 때 [1, 3]은 차가 2이고, [3, 4]는 차가 1이고, [4, 6]은 차가 2입니다. 따라서 가장 작은 길이를 가진 [3, 4]를 출력해야 합니다.
</aside>
def solution(data):
x = list(zip(data, data[1:])) **#1 리스트 및 zip()함수**
return list(sorted(x, key=lambda x: abs(x[1] - x[0]))[0]) **#2 sorted() 함수 절댓값**
이 코드는 입력으로 주어진 리스트에서 서로 인접한 두 요소 간의 차이가 가장 작은 쌍을 찾아서 반환합니다.
리스트 및 zip() 함수
zip()
함수를 사용하여 입력 데이터의 인접한 요소들을 묶습니다. zip(data, data[1:])
는 각 요소와 그 다음 요소를 튜플로 묶은 이터레이터를 생성합니다.
sorted() 함수 및 차이의 절댓값
sorted()
함수를 사용하여 인접한 요소 쌍을 차이의 절댓값을 기준으로 정렬합니다.
람다 함수 lambda x: abs(x[1] - x[0])
를 사용하여 각 요소 쌍의 차이의 절댓값을 기준으로 정렬합니다. 따라서 가장 작은 차이를 가진 쌍이 리스트의 맨 앞에 위치하게 됩니다. 정렬된 결과 중 가장 작은 차이를 가진 쌍을 선택합니다. 이 쌍은 리스트의 맨 앞에 위치하므로 인덱스 0을 사용하여 선택합니다.
이 결과는 튜플 형태로 반환됩니다.
차이의 절댓값
기본 형태: abs()
함수
개념: 차이의 절댓값은 두 값 사이의 거리를 나타내는 것으로, 음수의 경우에도 항상 양수로 반환됩니다. 예를 들어, 5와 8 사이의 차이는 3이지만, 그 절댓값은 3입니다. 마찬가지로, -5와 8 사이의 차이는 -13이지만 절댓값은 13입니다. 프로그래밍에서는 abs()
함수를 사용하여 두 값의 차이의 절댓값을 쉽게 계산할 수 있습니다. 이 연산은 데이터 처리, 거리 계산 등 다양한 상황에서 유용하게 활용됩니다. 예를 들어, 두 점 간의 거리를 계산할 때나 숫자의 차이를 비교할 때 사용됩니다.
num1 = 5
num2 = 8
difference = abs(num1 - num2)
print(difference)
def solution(data):
sorted_data = sorted(data)
return list(min(zip(sorted_data, sorted_data[1:]), key=lambda x: \\ **#1 정렬 #2 zip()**
abs(x[0] - x[1]))) #3 min()
정렬된 리스트
첫 번째 요소를 제외한 나머지 요소를 선택합니다. 이를 통해 리스트에서 각 요소와 그 다음 요소를 짝지어줄 수 있습니다.
zip()
함수
각 요소와 그 다음 요소의 쌍을 형성합니다.
절댓값 계산
그 중 가장 작은 차이를 가진 쌍을 찾습니다.
min 함수