코테/프로그래머스

[프로그래머스/Lv. 0] 가까운 수

imname1am 2023. 2. 5. 17:04
반응형

내 1차 코드 (틀림)

import java.util.*;

class Solution {
    public int solution(int[] array, int n) {
        int answer = 0;
               
        Arrays.sort(array);
        int diff = Math.abs(n - array[0]);
        
        for(int num : array) {
            
            if(Math.abs(n - num) == 0) {
                answer = num;
            }
            
            if(Math.abs(n - num) < diff) {
                diff = Math.abs(n - num);
                answer = num;
            }
        }
        
        return answer;
    }
}

코드 실행했을 때는 패스했는데 채점하니까 틀렸다...🤔

 

 

내 2차 코드 (맞음!)

import java.util.*;

class Solution {
    public int solution(int[] array, int n) {
        int answer = 0;
        int diff = 100;     
        
        Arrays.sort(array);
        
        for(int num : array) {
            if(Math.abs(n - num) == 0) {
                answer = num;
            }
            if(Math.abs(n - num) < diff) {
                diff = Math.abs(n - num);
                answer = num;
            }
        }
        
        return answer;
    }
}

diff를 일단 100으로 잡았더니 되었다....

비슷한 정답...은 아래에

import java.util.*;
class Solution {
    public int solution(int[] array, int n){
        int min = 100, idx = 0;
        Arrays.sort(array);
        for(int i = 0; i < array.length; i++){
            if(Math.abs(array[i] - n) < min){
                min = Math.abs(array[i] - n);
                idx = i;
            }
        }
        return array[idx];
    }
}

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형