본문 바로가기
알고리즘/문제 풀이

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

by _eunji_ 2022. 1. 13.

https://programmers.co.kr/learn/courses/30/lessons/68644

 

코딩테스트 연습 - 두 개 뽑아서 더하기

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한

programmers.co.kr

 

중복 제거해주는 hashset 이용해서 풀려고 했는데 hashset을 배열로 어떻게 변환하는지 몰라서 엄청 헤매다가 

결국 arraylist로 풀었다..

자바 자료구조 공부 다시 해야 할 듯..

 

arraylist 사용한 이유 -> 배열과 다르게 동적으로 크기 설정 가능, 특정 값 확인 가능

 

import java.util.*;
class Solution {
    public int[] solution(int[] numbers) {
        int[] answer = {};
        ArrayList<Integer> list = new ArrayList<Integer>();

        for(int i=0;i<numbers.length;i++){
            for(int j=i+1;j<numbers.length;j++){
                int num=numbers[i]+numbers[j];
                if(!list.contains(num)) {
                    list.add(num);}
            }
        }


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

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


        Arrays.sort(answer);

        return answer;
    }
}

 

 

댓글