[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ (JAVA)

2025. 1. 30. 23:23ยท๐Ÿ’ช Algorithm
๋ฐ˜์‘ํ˜•

๋งํฌ

https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=java

 

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

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

๋ฌธ์ œ ์š”์•ฝ

์ •์ˆ˜ ๋ฐฐ์—ด numbers์— ๋Œ€ํ•ด ๋‘ ๊ฐœ์˜ ์ˆ˜๋ฅผ ๋ฝ‘์•„ ๋”ํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ˆ˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

์ด๋•Œ, ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

์ œํ•œ

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

 

ํ’€์ด

numbers์˜ ๊ธธ์ด๊ฐ€ 100 ์ดํ•˜๋กœ, ์ž‘์€ ๊ฐ’์ด๋ฏ€๋กœ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ์ปค๋„ ์ƒ๊ด€์—†์Šต๋‹ˆ๋‹ค.

  1. numbers์—์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋‘ ๊ฐœ์˜ ์ˆ˜ ํ•ฉ์„ ๋ชจ๋‘ ์ฐพ๋Š”๋‹ค.
  2. ์ด๋ฅผ ์ค‘๋ณต ์ œ๊ฑฐํ•œ๋‹ค.
  3. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

 

์ฝ”๋“œ

1. HashSet ์‚ฌ์šฉํ•˜๊ธฐ

import java.util.*;

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

        return answer;
    }
}

 

[์‹œ๊ฐ„ ๋ณต์žก๋„]

  • N: numbers ๋ฐฐ์—ด์˜ ๊ธธ์ด
  • ์ด์ค‘ for๋ฌธ → O(N^2)
    • set.add() → O(1)
  • set์˜ ์ตœ๋Œ€ ๊ธธ์ด: N^2
  • sorted() → O((N^2) log(N^2))
  • ์ตœ์ข… ์‹œ๊ฐ„ ๋ณต์žก๋„ = O(N^2)+O((N^2) log(N^2)) = O((N^2) log(N^2))

 


 

2. distinct() ์‚ฌ์šฉํ•˜๊ธฐ

import java.util.*;

class Solution {
    public int[] solution(int[] numbers) {
        
        List<Integer> list = new ArrayList<>();
        for(int i=0; i<numbers.length-1; i++){
            for(int j=i+1; j<numbers.length; j++){
                list.add(numbers[i]+numbers[j]);
            }
        }
        int[] answer = list.stream().distinct().sorted().mapToInt(Integer::intValue).toArray();

        return answer;
    }
}

 

hashSet ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ผ์ง„ ์ ์€ ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ์œ„ํ•ด ์ŠคํŠธ๋ฆผํ™”ํ•œ ํ›„, distinc() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

'๐Ÿ’ช Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฐฉ๋ฌธ ๊ธธ์ด (JAVA)  (2) 2025.02.03
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹คํŒจ์œจ (JAVA)  (1) 2025.02.02
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ (JAVA)  (1) 2025.02.01
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ชจ์˜๊ณ ์‚ฌ (JAVA)  (1) 2025.01.30
'๐Ÿ’ช Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฐฉ๋ฌธ ๊ธธ์ด (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹คํŒจ์œจ (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ชจ์˜๊ณ ์‚ฌ (JAVA)
dev-heyjin
dev-heyjin
  • dev-heyjin
    ๊ฐœ๋ฐœ ๊ธฐ๋ก
    dev-heyjin
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (56)
      • ๐ŸŽฏ Programming (8)
      • ๐Ÿ’ช Algorithm (16)
      • โš™๏ธ CS (31)
        • ๋„คํŠธ์›Œํฌ (15)
        • ์šด์˜์ฒด์ œ (15)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ํ•ดํ‚น
    DB
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    RDS
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
dev-heyjin
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ (JAVA)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”