C#

[프로그래머스 힌트/답/해석] 가까운 수

Guk-blog 2024. 1. 29. 13:01
728x90
반응형

힌트

더보기

- array가 1, 3, 5, 7일 때 n이 4라면 3과 5가 가까운 수이고 3이 더 작은 수 이므로 3을 리턴한다

정답

더보기
return array.OrderBy(x => x).FirstOrDefault(x => Math.Abs(x - n) == array.Min(o => Math.Abs(o - n)));
return array.OrderBy(x => x).OrderBy(x=>Math.Abs(x-n)).First();

해석

더보기

1) 첫 번째 답

array.OrderBy(x => x)

 array를 오름차순으로 정렬한다

.FirstOrDefault()

 첫 번쨰 값을 반환하거나 기본값을 반환한다

FirstOrDefault(x => Math.Abs(x - n) == array.Min(o => Math.Abs(o - n)))

 절대값(x-n)이 array의 최소값의 절대값(o-x)과 같은 값을 반환한다

2) 두 번째 답

OrderBy(x=>Math.Abs(x-n)).First();

 절대값 x-n을 오름차순으로 나열하여 제일 첫 번쨰 값을 리턴한다

728x90
반응형