[코테 풀기] 가까운 수 (JS)

JCH27·2023년 11월 20일
0

coding_test

목록 보기
6/12

또 코푼다.
언어는 javascript
문제는 [Link] 프로그래머스 에서 풀어볼 수 있다.


문제 : 주어진 배열의 수 중 주어진 정수와 가장 가까운 수를 리턴한다. 가까운 수가 두 개 이상인 경우 더 작은수를 리턴한다.


해결 - 배열을 순회하여 차를 구한 뒤 리턴하기

	const solution = (array, n) => {
    	array.sort((a,b) => (a-b));
		// 정수 배열을 오름차순으로 정렬한다.
      
    	let distance = Infinity;
      	// 배열의 값과 타겟넘버 n 과의 차이를 담을 변수 선언
    	let result = array[0];
      	// 결과 변수 선언
    	array.forEach((i) => {
          	// 배열을 순회한다.
        	if( Math.abs(n-i) < distance ){
              	// 만약에 타겟넘버에서 값을 뺀 절댓값이 distance 보다 작다면
              	// (차이가 같은 경우는 초기화되지 않으므로 더 작은 수가 저장된다.)
              	// 차이가 가장 작은 값이기 때문에 결과값과 차이를 초기화 해야 한다.
            	result = i;
            	distance = Math.abs(n-i);
        	}
    	});
    	return result;
      	// 결과 리턴
	}

크기를 비교하는 방법을 잘 기억해두자

profile
포기하지 않는 키보드 워리어

0개의 댓글