본문 바로가기

코딩테스트 스터디

코딩테스트 연습 - 가까운 수 (JAVA)

프로그래머스 코딩테스트 입문 0단계 문제입니다

https://school.programmers.co.kr/learn/courses/30/lessons/120890

📢 문제 설명

정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.

⭕ 정답 코드

import java.util.Arrays;
class Solution {
    public int solution(int[] array, int n) {
        int answer = 0;
        int min = 100; //원소의 최솟값: 1, n의 최댓값: 100 => 나올 수 있는 차의 최댓값: 99
        
        Arrays.sort(array); //정렬 안 되어있는 array도 있음
        
        for(int a : array){ //array 요소 하나씩 보기
            int abs = Math.abs(n-a); //n과의 차이 구하기
            if(min > abs) { //차이가 min보다 작을때 => 절댓값
                if((min==abs) && (answer<a)) //min에 들어있는 값이랑 절댓값이랑 같고 answer이 더 작으면
                    break; //멈춤
                answer = a; //정답이 아니라서 못멈추면 answer에 a를 넣고
                min = abs; //min에 절댓값를 넣어준다
            }
        }
        return answer;
    }
}
  • 설명은 주석을 참고하세요

✅ 회고

사실 초심을 잃었다.. 다른 사람의 더 좋은 풀이가 궁금하지 않다니ㅠㅠㅠ

반성반성.. 내일부터는 좀 더 어려운 문제를 풀어보려고 한다

그리고 자백하자면 사실 이 문제는 1월 19일에 풀었어야했다 ㅎㅎㅎ

끝까지 풀어냈으니 칭찬해주기.... 그래도 다음에는 당일에 다 풀기....!