Teddy Bear Holding A Heart Balloon [์ž…๋ฌธ] ๊ฐ€๊นŒ์šด ์ˆ˜
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿฅ‡ Coding Test/์˜ค๋‹ต๋…ธํŠธ

[์ž…๋ฌธ] ๊ฐ€๊นŒ์šด ์ˆ˜

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

[ ๋ฌธ์ œ์„ค๋ช… ]

์ •์ˆ˜ ๋ฐฐ์—ด array์™€ ์ •์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, array์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜ ์ค‘ n๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

1 ≤ array์˜ ๊ธธ์ด ≤ 100

1 ≤ array์˜ ์›์†Œ ≤ 100

1 ≤ n ≤ 100

๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๊ฒฝ์šฐ ๋” ์ž‘์€ ์ˆ˜๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

[ ํ’€์ด๊ณผ์ • ]

1๋ฒˆ์‹œ๋„ >

class Solution {
    public int solution(int[] array, int n) {
    
        int cha = 0; //array์›์†Œ์™€ n์˜ ์ฐจ์ด๊ฐ’์„ ๋‹ด์„ ๋ณ€์ˆ˜
        int min = Integer.MAX_VALUE; //cha์˜ ์ตœ์†Ÿ๊ฐ’์„ ๋‹ด์„ ๋ณ€์ˆ˜
        int answer = 0; //์ตœ์ข… array์›์†Œ๋ฅผ ๋‹ด์„ ์ •๋‹ต ๋ณ€์ˆ˜ 
        
        for (int i=0; i<array.length; i++) { //array๋ฐฐ์—ด ์ˆœํšŒํ•˜๋ฉด์„œ
            cha = Math.abs(n-array[i]); //n๊ณผ ์›์†Œ์™€์˜ ์ฐจ์ด๋ฅผ ์ ˆ๋Œ€๊ฐ’์œผ๋กœ ๊ณ„์‚ฐํ•ด์„œ cha์— ๋‹ด๊ธฐ
            if (cha < min) { //cha๊ฐ€ min๋ณด๋‹ค ์ž‘๋‹ค๋ฉด
                min = cha; //min์— chaํ• ๋‹น
                answer = array[i]; //answer์— ํ•ด๋‹น ์›์†Œ ํ• ๋‹น
            }
        }
        return answer;
    }
}

๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๊ฒฝ์šฐ ๋” ์ž‘์€ ์ˆ˜๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค. -> ์ด ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•˜๋‹ค. 

2๋ฒˆ์‹œ๋„ >

class Solution {
    public int solution(int[] array, int n) {
        int cha = 0;
        int min = Integer.MAX_VALUE;
        int answer = 0;
        
        for (int i=0; i<array.length; i++) {
            cha = Math.abs(n-array[i]);
            if (cha < min) {
                min = cha;
                answer = array[i];
            }
            else if (cha == min) { //๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์ผ๋•Œ๋Š” 
                if (array[i] < answer) { 
                    answer = array[i]; 
                //ํ˜„์žฌ answer์— ๋‹ด๊ฒจ์žˆ๋Š” ์›์†Œ์™€ ๋น„๊ตํ•ด์„œ
                //๋” ์ž‘์€ ๊ฐ’์„ answer์— ํ• ๋‹น
                }
            }
        }
        return answer;
    }
}

[ ๋‹ค๋ฅธํ’€์ด ]

import java.util.*;

class Solution {
    public int solution(int[] array, int n) {
        int answer = 0;
        Arrays.sort(array); //array๋ฐฐ์—ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
        
        for(int i = 1 ; i < array.length ; i++){ //array๋ฐฐ์—ด ์ธ๋ฑ์Šค 1๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉด์„œ
            if(Math.abs(n-array[i]) < Math.abs(n-array[0])){
            //0๋ฒˆ์ธ๋ฑ์Šค ์›์†Œ์™€ n์˜ ์ฐจ์ด๊ฐ’๋ณด๋‹ค ์ž‘์œผ๋ฉด
                array[0] = array[i];
                //0๋ฒˆ์ธ๋ฑ์Šค์— ํ•ด๋‹น ์›์†Œ ํ• ๋‹น
                //์ฐจ์ด๊ฐ’์ด ๊ฐ™์€ ๊ฒฝ์šฐ์—๋„ ๋ฐฐ์—ด์ด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด์žˆ๊ธฐ๋•Œ๋ฌธ์— 
                //๊ฒฐ๊ณผ์ ์œผ๋กœ ๋” ์ž‘์€ ์›์†Œ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Œ
            }
        }
        answer = array[0];
        //์ •๋‹ต์— 0๋ฒˆ์ธ๋ฑ์Šค๊ฐ’ ํ• ๋‹น
        return answer;
    }
}
import java.util.*;
class Solution {
    public int solution(int[] array, int n) {
        Arrays.sort(array); //๋ฐฐ์—ด ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

        int min = Math.abs(array[0]-n); 
        //0๋ฒˆ์ธ๋ฑ์Šค์™€ n์˜ ์ฐจ์ด์˜ ์ ˆ๋Œ€๊ฐ’์„ ๋ณ€์ˆ˜ min์— ๋‹ด๊ธฐ
        
        int minIdx = 0; //์ธ๋ฑ์Šค ๋ณ€์ˆ˜ ์„ ์–ธ
        for(int i=1; i<array.length; i++) //array๋ฐฐ์—ด 1๋ฒˆ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉด์„œ
            if(Math.abs(array[i]-n) < min) { //์ฐจ์ด์˜ ์ ˆ๋Œ€๊ฐ’์ด min๋ณด๋‹ค ์ž‘์œผ๋ฉด
                min = Math.abs(array[i]-n); //min ์—…๋Žƒ
                minIdx = i; //ํ•ด๋‹น ์ธ๋ฑ์Šค minIdx์— ๋‹ด์•„์ฃผ๊ธฐ
            }

        return array[minIdx];
    }
}