JAVA

[Java] Coding Test (Pick two and add them)

SangRok Jung 2022. 8. 8. 13:09
반응형

문제


정수 배열 numbers에서 서로 다른 인덱스의 두 수를 더해 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하는 solution 함수를 만드시오.

 

 

 

 

▶ 입출력 예

numbers result
[2, 1, 3, 4, 1] [2, 3, 4, 5, 6, 7]
[5, 0, 2, 7] [2, 5, 7, 9, 12]

 

 

 

 

 

 

 

 

해법


본 문제는 중복이 제거되는 HashSet과 정렬이 가능한 ArrayList를 이용하여 구현합니다.

 

 

 

1. 서로 다른 인덱스 끼리 더하여 HashSet에 저장한다. (중복제거)

2. ArrayList에 HashSet를 저장한다.

3. ArrayList를 정렬한다.

 

 

 

    import java.util.*;
    
    public static int[] solution(int[] numbers) {   
        
        ArrayList<Integer> list = new ArrayList<Integer>();
        HashSet<Integer> set = new HashSet<Integer>();


        // 인덱스 끼리 더한 값을 중복제거 하면서 set에 저장.
        for(int i = 0; i < numbers.length - 1; i++) {

            for(int j = i+1; j < numbers.length; j++) {
                set.add(numbers[i] + numbers[j]);
            }
        }

        list.addAll(set);

        // 오름차순 => ArrayList
        Collections.sort(list);

        int[] answer = new int[list.size()];

        for(int i = 0; i < list.size(); i++){
            answer[i] = list.get(i);
        }
        
        return answer;
    }

 

 

반응형

'JAVA' 카테고리의 다른 글

[Java] Coding Test (예산)  (0) 2022.08.11
[Java] Coding Test (크레인 인형뽑기 게임)  (0) 2022.08.09
[Java] Coding Test (Lotto)  (0) 2022.08.04
[Java] Annotation  (0) 2022.08.04
[Java] enum(열거형)  (0) 2022.08.03