오늘은 여기까지

[프로그래머스] 두 개 뽑아서 더하기 - 자바 Java 본문

Problem Solving

[프로그래머스] 두 개 뽑아서 더하기 - 자바 Java

dev-99 2024. 7. 8. 20:52

1. 처음에 HashSet 사용해서 풀이한 경우

  • HashSet -> ArrayList 또는 Array로 변환 -> Integer에서 int 타입 변환
  • 어쨌든 한 단계 더 수고로운 관계로 그냥 처음부터 ArrayList에 저장하는게 나은듯
import java.util.*;
import java.io.*;

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

 

2. ArrayList에 저장하는 경우

import java.util.*;

public int[] solution(int[] numbers) {
    int[] answer = {};
    List<Integer> list = new ArrayList<>();
    for (int i=0; i<numbers.length; i++) {
        for (int j=i+1; j<numbers.length; j++) {
            int r = numbers[i]+numbers[j];
            if (!list.contains(r)) list.add(r);
        }
    }
    Collections.sort(list);
    answer = list.stream().mapToInt(i->i).toArray();
    return answer;
}