문제 설명
정수 배열 numbers가 주어집니다
numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를
배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요
제한 조건
- numbers의 길이는 2 이상 100 이하입니다
- numbers의 모든 수는 0 이상 100 이하입니다
입출력 예시
numbers | result |
[2,1,3,4,1] | [2,3,4,5,6,7] |
[5,0,2,7] | [2,5,7,9,12] |
나만의 해설
일단 이중for문을 사용해서 numbers의 첫번째 수와 그 뒤에 수들을 더해서 임시변수에담고
그 임시 변수가 arraylist에 존재하지 않으면 추가해주는 방식이다
이때 서로 다른 수를 더해줘야 하기에 같은 수인 i == j 면 continue해서 다음으로 넘어가주게 한다
그리고 마지막에 배열에 담고 arrays.sort해서 오름차순으로 정렬해준다
public class Solution {
public static void main(String[] args) {
int []numbers = {2, 1, 3, 4, 1};
ArrayList<Integer> list = new ArrayList<>();
int temp = 0;
for (int i=0; i<numbers.length; i++){
for(int j=0; j<numbers.length; j++){
if (i == j){
continue;
}
temp = numbers[i] + numbers[j];
if(!list.contains(temp)){
list.add(temp);
}
}
}
int[] answer = new int[list.size()];
for(int i = 0; i<list.size(); i++){
answer[i] = list.get(i);
}
Arrays.sort(answer);
System.out.println("최종 : " + answer);
}
}
'Algorithm' 카테고리의 다른 글
[프로그래머스] 연습문제 (모의고사) (0) | 2022.09.28 |
---|---|
[프로그래머스] 연습문제 (로또의 최고 순위와 최저 순위) (0) | 2022.09.27 |
[프로그래머스] 연습문제 (같은 숫자는 싫어) (0) | 2022.09.27 |
[프로그래머스] 연습문제 (최소직사각형) (0) | 2022.09.27 |
[프로그래머스] 연습문제 (3진법 뒤집기) (0) | 2022.09.27 |