스터디/코딩테스트

javascript 코딩테스트 - 가까운 수

공대생철이 2023. 2. 22. 22:35
728x90

이걸 보고 처음 든 생각 

- 반복문을 통해서 array에 있는 애들을 하나씩 비교해줘야겠다

- 차이니깐 절대값을 써야하므로 Math.abs 가 필요하다

 

 

나의 답

function solution(array, n) {
    var answer = 0;
    for(let k of array){
        if(Math.abs(answer-n)<Math.abs(k-n)){
            answer = answer;
        } else if(Math.abs(answer-n)===Math.abs(k-n)) {
            answer = answer > k ? k : answer
        } else {
            answer = k
        }
    }
    return answer;
}

for of 구문을 통해서 array에 있는 원소들을 하나씩 뽑아내었고

절대값을 비교하여 작은 녀석을 answer에 할당한다.

 

처음에 풀이할 때 실수한 부분이기도 한데 제한사항 4번째에 해당하는 조건을 빼먹었었다.

절댓값이 같으면 answer이랑 k 중 작는 애를 할당하는 조건문을 추가했다.

728x90