๊ฐœ๋ฐœ์ผ์ง€

[Java] HashSet, set → ๋ฐฐ์—ด ๋ฆฌํ„ด / ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ ๋ณธ๋ฌธ

Algorithm

[Java] HashSet, set → ๋ฐฐ์—ด ๋ฆฌํ„ด / ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ

O'mil 2024. 5. 24. 21:30
728x90

๐Ÿ”— ๋งํฌ

๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ

 

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

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

programmers.co.kr

๐Ÿ“Œ ๋ฌธ์ œ ์„ค๋ช…

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

 

๐Ÿ‘€ ์˜ˆ์ œ

โœ๏ธ ํ’€์ด ์ˆœ์„œ

  1. ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ์œ„ํ•ด Set ์‚ฌ์šฉ
  2. ๋‘ ์ˆ˜์˜ ํ•ฉ ๊ตฌํ•˜๊ธฐ
  3. ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•ด ๋ฆฌํ„ด

๐Ÿ“ HashSet

  • ์ค‘๋ณต์ œ๊ฑฐ: HashSet์€ ์ค‘๋ณต๋œ ์š”์†Œ๋ฅผ ์ž๋™์œผ๋กœ ์ œ๊ฑฐํ•จ.
  • ๋น ๋ฅธ ์กฐํšŒ ์†๋„: ๋‚ด๋ถ€์ ์œผ๋กœ ํ•ด์‹œ ํ…Œ์ด๋ธ” ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์กฐํšŒํ•˜๋Š” ์ž‘์—…์ด ํ‰๊ท ์ ์œผ๋กœ O(1)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง

๐Ÿ’ป ์ฝ”๋“œ

import java.util.*;

class Solution {
    public int[] solution(int[] numbers) {
        
        Set<Integer> sum = new HashSet<>();
        
        for (int i = 0; i < numbers.length; i++) {
            for (int j = i + 1; j < numbers.length; j++) {
                sum.add(numbers[i] + numbers[j]);
            }
        }
        
        List<Integer> list = new ArrayList<>(sum);
        Collections.sort(list);
        
        return list.stream().mapToInt(Integer::intValue).toArray();
    }
}

→ ๊ตณ์ด list๋กœ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  set์—์„œ ๋ฐ”๋กœ ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ

import java.util.*;

class Solution {
    public int[] solution(int[] numbers) {
        
        Set<Integer> sum = new HashSet<>();
        
        for (int i = 0; i < numbers.length; i++) {
            for (int j = i + 1; j < numbers.length; j++) {
                sum.add(numbers[i] + numbers[j]);
            }
        }
        
        return sum.stream().sorted().mapToInt(i->i).toArray();
    }
}

 


๐Ÿ“šReference

728x90
Comments