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

๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ - Java [์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต]

by ๊ทคํ”ผํ‚ค 2022. 12. 14.

 

โค๏ธ Problem

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

  • ์ œํ•œ ์‚ฌํ•ญ
    • numbers์˜ ๊ธธ์ด๋Š” 2 ์ด์ƒ 100 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
    • numbers์˜ ๋ชจ๋“  ์ˆ˜๋Š” 0 ์ด์ƒ 100 ์ดํ•˜์ž…๋‹ˆ๋‹ค.

 

  • ์ž…์ถœ๋ ฅ ์˜ˆ & ์„ค๋ช…
no numbers result
1 [2,1,3,4,1] [2,3,4,5,6,7]
2 [5,0,2,7] [2,5,7,9,12]
  1. 2 = 1 + 1 ์ž…๋‹ˆ๋‹ค. (1์ด numbers์— ๋‘ ๊ฐœ ์žˆ์Šต๋‹ˆ๋‹ค.)
    3 = 2 + 1 ์ž…๋‹ˆ๋‹ค.
    4 = 1 + 3 ์ž…๋‹ˆ๋‹ค.
    5 = 1 + 4 = 2 + 3 ์ž…๋‹ˆ๋‹ค.
    6 = 2 + 4 ์ž…๋‹ˆ๋‹ค.
    7 = 3 + 4 ์ž…๋‹ˆ๋‹ค.
    ๋”ฐ๋ผ์„œ [2,3,4,5,6,7] ์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. 2 = 0 + 2 ์ž…๋‹ˆ๋‹ค.
    5 = 5 + 0 ์ž…๋‹ˆ๋‹ค.
    7 = 0 + 7 = 5 + 2 ์ž…๋‹ˆ๋‹ค.
    9 = 2 + 7 ์ž…๋‹ˆ๋‹ค.
    12 = 5 + 7 ์ž…๋‹ˆ๋‹ค.
    ๋”ฐ๋ผ์„œ [2,5,7,9,12] ๋ฅผ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 


 

๐Ÿ’› Solution

ํ’€์ด

import java.util.ArrayList;
import java.util.Collections;

class Solution {
    public int[] solution(int[] numbers) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        for(int i=0; i<numbers.length-1; i++) {
            for(int j=i; j<numbers.length; j++) {
                int sum  = numbers[i]+numbers[j];
                if(i!=j && !list.contains(sum)) {
                    list.add(sum);
                }
            }
        }
        Collections.sort(list);
        int[] answer = new int[list.size()];
        for (int i=0; i<list.size(); i++) {
            answer[i] = list.get(i).intValue();
        }
        return answer;
    }
}

 

์ฒ˜๋ฆฌ์†๋„ GOOD๐Ÿ˜‹


 


 

๐Ÿ’œ Comment

int[] numbers์˜ ๊ฐ’ ๋‘๊ฐœ๋ฅผ ๋”ํ•ด์„œ ๋ฐฐ์—ด์— ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์„ ํ•œ ๋’ค ๋ฐ˜ํ™˜ํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

์ผ๋‹จ, numbers[]์˜ ๊ฐ’ ๋‘๊ฐœ๋ฅผ ๋”ํ–ˆ์„ ๋•Œ ์ค‘๋ณต๊ฐ’์ด ๋ช‡๊ฐœ๊ฐ€ ๋‚˜์˜ฌ์ง€๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ArrayList<Integer> list๋ฅผ ์„ ์–ธํ–ˆ๋‹ค. ๊ทธ ๋‹ค์Œ ์ด์ค‘ for ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ numbers[i]์™€ numbers[j]๋ฅผ ๋”ํ•˜๋„๋ก ํ•œ ๋‹ค์Œ, i๊ฐ€ j๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ์™€ ArrayList.contain()์„ ์‚ฌ์šฉํ•ด์„œ ์ด๋ฏธ ๊ทธ ๊ฐ’์ด ArrayList์— ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ ArrayList์— ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

i์™€ j๊ฐ€ ๋‹ค๋ฅผ ๊ฒƒ์ด๋ผ๋Š” ์กฐ๊ฑด์„ ๊ฑด ์ด์œ ๋Š” ๋™์ผ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง„ ๊ฐ’์„ ๋”ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ArrayList.contain()์œผ๋กœ ์ค‘๋ณต๊ฐ’์ด ArrayList์— ๋“ค์–ด๊ฐ€์ง€ ์•Š๋„๋ก ํ•˜์˜€๋‹ค.

๊ทธ ๋‹ค์Œ, Collections.sort()๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋’ค ArrayList ๊ฐ’์„ int[] answer์— for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๋„ฃ์€ ๋’ค ๋ฐ˜ํ™˜ํ•˜์˜€๋‹ค.

 

 

 

8883์œ„๐Ÿ’š๐Ÿ’š๐Ÿ’š

 

 

 

๋Œ“๊ธ€