두 개 뽑아서 더하기 풀이 [프로그래머스, JAVA]

문제 출처 : programmers.co.kr/learn/courses/30/lessons/68644

** 잊지 말야아 할것 **

- 중복된 값은 제외 한다

- 오름차순으로 정렬해야 한다

 

import java.util.ArrayList;
import java.util.Arrays;

public class programmers {
	public static void main(String[] args) {
		
        	// 결과 확인을 위한 임의의 값
		int[] numbers = {1,3,1,4,5};
		int[] answer = {};
		
		// 1. Arraylist 생성
		ArrayList<Integer> num = new ArrayList<Integer>();
		
		// 2. 반복문을 통해 리스트에 값 추가
		for(int i=0; i<numbers.length-1; i++) {
			for(int j=i+1 ; j<numbers.length; j++) {
				if( !num.contains(numbers[i]+numbers[j])) num.add(numbers[i]+numbers[j]);
			}
		}

		answer = new int[num.size()] ;
		for(int i=0; i< answer.length ; i++) {
			answer[i] = num.get(i);
		}
		
		// 중복제거
		Arrays.sort(answer);
		
      		// 결과값 확인을 위한 for문
		for(Integer result : answer) {
			System.out.print(" " + result);
		}
		
	}

}

 

 

프로그래머스에서 정상적으로 작동되는지 확인해보려면,

위에서 임의의 값을 지우고 마지막에 for문 대신, return을 추가하면 되겠습니다.

 

프로그래머스 문제를 풀다보니, 1단계에선 정렬에 관련된게 참 많은데

각자 풀이 방법이 다르겠지만 개인적으론 list를 활용하는게 간단한 경우가 많은것 같더라구요.

하지만 아직 완벽히 사용하지는 못하는...ㅎㅎ

 

다른 분들의 풀이도 보고.. 여러 방향으로 해결방법을 공부해봐야겠습니다.

코드에 대한 지적, 조언 환영합니다. 감사합니다!