문제

코딩
def solution(array, n):
answer = {}
array.sort(reverse=True)
for i in array:
answer[abs(i-n)] =i
return answer[min(answer)]
- array를 순서정렬없이 하니 n=20이고, array에 10, 30이 순서로 있을 때 10이 먼저 들어가고 그 후 30이 들어가 결국 30이 나와 오답이 나왔었다.
- (딕셔너리는 중복키를 인정하지 않는다.)
- 해결방법: 순서를 내림차순으로 하면 작은값이 젤 마지막에 붙으니 뺀 값이 동일할 때 작은 값을 추출할 수 있었다.
다른 사람 풀이
solution=lambda a,n:sorted(a,key=lambda x:(abs(x-n),x))[0]
- 충격
- lambda로 풀다니...
- 나랑 비슷한 방법이긴한데..대박입니다...