[ 프로그래머스 입문 자바 ] LV0가까운 수

2025. 6. 22. 15:04·코딩테스트/프로그래머스 입문

📚 문제 설명

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

✅ 제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 1 ≤ array의 원소 ≤ 100
  • 1 ≤ n ≤ 100
  • 가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.

💻 구현 코드

import java.util.Arrays;
class Solution {
    public int solution(int[] array, int n) {
        int answer =  Integer.MAX_VALUE;
        int result =0; 
        
        for(int i=0;i<array.length;i++){
            int compare = Math.abs(n-array[i]);
            
            if(compare < answer){
                answer = compare;
                result = array[i];
                
            }else if(compare == answer){
                if(result >= array[i]){
                    result = array[i];
                }
            }
        }
        return result;
    }
}

📌 구현코드 해설

 

  • answer 변수에는*현재까지 발견한 최솟값과의 거리(절댓값)를 저장
    초기값으로 Integer.MAX_VALUE를 사용해 어떤 값과 비교해도 작도록 설정
  • result 변수는 n과 가장 가까운 값(최종 정답)을 저장하는 역할을 한다. 
  • 배열을 순회하면서:
    1. compare = Math.abs(n - array[i])를 통해 현재 원소와의 거리를 계산한다. 
    2. 만약 compare < answer이면:
      • 더 가까운 수이므로 answer와 result를 모두 갱신한다. 
    3. 만약 compare == answer이면:
      • 거리가 같은 경우, 더 작은 값을 선택한다. (result >= array[i])
      • 예를 들어 n = 10, 배열에 9와 11이 있으면 → 9가 선택된다.
  • 최종적으로 result를 반환하여 n과 가장 가까운 값을 리턴한다.

 

🍏 회고 / 새롭게 알게 된 점

Integer.MAX_VALUE, Integer.MIN_VALUE 새롭게 알게 되었다. 

 

✅ Integer.MAX_VALUE란?

  • int형(32비트 정수)에서 표현 가능한 최댓값
  • 값: 2,147,483,647 (= 2^31 - 1)

'코딩테스트 > 프로그래머스 입문' 카테고리의 다른 글

[ 프로그래머스 입문 자바 ] LV0 암호 해독  (0) 2025.06.22
[ 프로그래머스 입문 자바 ] LV0 369게임  (0) 2025.06.22
[ 프로그래머스 입문 ] LV0 삼각형의 완성조건 (1)  (0) 2025.06.21
[ 프로그래머스 입문 ] LV0 중복된 문자 제거  (0) 2025.06.21
[ 프로그래머스 입문 자바 ] LV0 배열 원소의 길이  (0) 2025.06.21
'코딩테스트/프로그래머스 입문' 카테고리의 다른 글
  • [ 프로그래머스 입문 자바 ] LV0 암호 해독
  • [ 프로그래머스 입문 자바 ] LV0 369게임
  • [ 프로그래머스 입문 ] LV0 삼각형의 완성조건 (1)
  • [ 프로그래머스 입문 ] LV0 중복된 문자 제거
Adose
Adose
  • Adose
    도즈의 개발 블로그
    Adose
  • 전체
    오늘
    어제
    • 분류 전체보기 (183)
      • JAVA (22)
      • 스프링 | 스프링 부트 (30)
        • 스프링 시큐리티 (1)
        • 채팅 (1)
      • 스프링 프로젝트 (5)
        • JDBC - 은행앱 구현 (1)
        • Spring Boot - 독서 블로그 프로젝트 (3)
        • 개인 프로젝트 - CoreBrief (1)
      • 가상화 기술 (1)
      • Git (1)
      • 코딩테스트 (37)
        • 프로그래머스 입문 (68)
      • AWS (1)
      • 데이터베이스 (0)
      • CS 공부 (4)
      • 알고리즘, 자료구조 (5)
      • 우테코 프리코스 (7)
      • 트러블 슈팅 (1)
      • 프론트 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    test
    springdatajdbc
    LV0
    LV2
    자바
    Java
    jdbc
    프론트
    Spring
    스프링부트
    GIT
    프로그래머스
    멋쟁이사자처럼백엔드
    스프링
    코딩테스트
    LV1
    멋쟁이사자처럼
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Adose
[ 프로그래머스 입문 자바 ] LV0가까운 수
상단으로

티스토리툴바