๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Programmers lv-0

๊ฐ€๊นŒ์šด ์ˆ˜ - Java [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž…๋ฌธ]

by ๊ทคํ”ผํ‚ค 2022. 11. 28.

 

โค๏ธ Problem

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

 

  • ์ œํ•œ ์‚ฌํ•ญ
    • 1 ≤ array์˜ ๊ธธ์ด ≤ 100
    • 1 ≤ array์˜ ์›์†Œ ≤ 100
    • 1 ≤ n ≤ 100
    • ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๊ฒฝ์šฐ ๋” ์ž‘์€ ์ˆ˜๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

 

  • ์ž…์ถœ๋ ฅ ์˜ˆ & ์„ค๋ช…

no array n result
1 [3, 10, 28] 20 28
2 [10, 11, 12] 13 12
  1. 3, 10, 28 ์ค‘ 20๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜๋Š” 28์ž…๋‹ˆ๋‹ค.
  2. 10, 11, 12 ์ค‘ 13๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ˆ˜๋Š” 12์ž…๋‹ˆ๋‹ค.

 

๐Ÿ’› Solution

ํ’€์ด 1

import java.util.Arrays;
class Solution {
    public int solution(int[] array, int n) {
        Arrays.sort(array);
        int index = 0;

        for (int i=0; i<array.length-1; i++) {
            if(Math.abs(n-array[index]) > Math.abs(n-array[i+1])) {
                index = i+1;
            } else{
                continue;
            }
        }
        return array[index];
    }
}

 

 

์ฒ˜๋ฆฌ์†๋„์— ๋Œ€ํ•œ ๋ณด์™„์ด ํ•„์š”ํ•ด ๋ณด์ธ๋‹ค

 

ํ’€์ด 1์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ

 


 

ํ’€์ด 2

class Solution {
    public int solution(int[] array, int n) {
        int index = 0;

        for (int i=0; i<array.length-1; i++) {
            if(Math.abs(n-array[index]) > Math.abs(n-array[i+1])) {
                index = i+1;
            } else if (Math.abs(n-array[index]) < Math.abs(n-array[i+1])){
                continue;
            } else {
                if(array[index] > array[i+1]) {
                    index = i+1;
                } else {
                    continue;
                }
            }
        }
        return array[index];
    }
}

 

 

์ฒ˜๋ฆฌ์†๋„ ๋ณด์™„ ์™„๋ฃŒ

ํ’€์ด 2์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ

 

 


 

๐Ÿ’œ Comment

์ฒ˜์Œ์—๋Š” Array.sort();๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋จผ์ € ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋’ค, for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ n์—์„œ ๊ฐ๊ฐ array[index]์™€ array[i]๋ฅผ ๋บ€ ๊ฐ’์„ ์ ˆ๋Œ€๊ฐ’์œผ๋กœ ํ™˜์‚ฐํ•œ ๋’ค ๋น„๊ตํ•˜์—ฌ ๋” ์ž‘์€ ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ index์— ๋Œ€์ž…ํ•˜์˜€๋‹ค. ์ฝ”๋“œ๋Š” ์งง์•˜์ง€๋งŒ Array.sort()๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ๋•Œ๋ฌธ์— ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ๋Š๋ฆฐ ํŽธ์ด์—ˆ๋‹ค. (0.32 ~ 0.53ms)

๊ทธ๋ž˜์„œ ๋‘๋ฒˆ์งธ ํ’€์ด๋Š” Array.sort() ๋Œ€์‹  ์กฐ๊ฑด์ ˆ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค. ํ’€์ด 1์˜ ๊ณผ์ •์—์„œ n-array[index]์™€ n-array[i+1]์˜ ์ ˆ๋Œ€๊ฐ’์ด ๋™์ผํ•œ ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด์ ˆ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” array[index]์™€ array[i+1]์˜ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ๋” ์ž‘์€ ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ index์— ๋Œ€์ž…ํ•˜์˜€๋‹ค.

ํ’€์ด 1๋ณด๋‹ค ์ฝ”๋“œ๋Š” ๊ธธ์–ด์กŒ์ง€๋งŒ ์ฒ˜๋ฆฌ ์†๋„๋Š” ๋” ๋น ๋ฅธ ์ฝ”๋“œ ์™„์„ฑ๐Ÿ˜Ž

 

์ ์ˆ˜๊ฐ€ ์ญ‰์ญ‰ ์˜ค๋ฅผ ๋•Œ ๊ธฐ๋ถ„์ด ๋„˜ ์ข‹๋‹ค๐Ÿคฉ

 

 

 

๋Œ“๊ธ€