[프로그래머스] [Level1] 두 개 뽑아서 더하기 - Java
2020. 12. 22. 13:30ㆍ프로그래밍/알고리즘
반응형
💁♀️ 링크
programmers.co.kr/learn/courses/30/lessons/68644
📃 문제
정수 배열 numbers가 주어진다.
numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 한다.
예)
numbers result
[2,1,3,4,1] | [2,3,4,5,6,7] |
- 2 = 1 + 1
- 3 = 2 + 1
- 4 = 1 + 3
- 5 = 1 + 4 = 2 + 3
- 6 = 2 + 4
- 7 = 3 + 4
🐾 문제풀이
1. numbers 배열에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 구한다.
-
ArrayList 사용
-
List 값이 중복되기 때문에 중복배제하는 코드를 작성해줘야 한다.
-
-
HashSet 사용
-
Set인터페이스를 구현한 것으로 중복허용X, 순서유지X
-
2. 오름차순으로 정렬한다.
-
Collections.sort() 사용
💻 코드
//
// ArrayList 사용
//
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public int[] solution(int[] numbers) {
int[] answer;
ArrayList<Integer> arrList = new ArrayList<>();
for(int i=0; i<numbers.length; i++){
for(int j=i+1; j<numbers.length; j++){
// 중복제거
if(!arrList.contains(numbers[i]+numbers[j])){
arrList.add(numbers[i]+numbers[j]);
}
}
}
// 정렬
Collections.sort(arrList);
int cnt = 0;
answer = new int[arrList.size()];
for(int arr : arrList){
answer[cnt++] = arr;
}
return answer;
}
}
반응형
'프로그래밍 > 알고리즘' 카테고리의 다른 글
[프로그래머스] [Level1] 모의고사 - Java (0) | 2020.12.23 |
---|---|
[프로그래머스] [Level1] 완주하지 못한 선수 - Java (0) | 2020.12.23 |
[프로그래머스] [Level1] 크레인 인형뽑기 게임 - Java (0) | 2020.12.22 |
[SW Expert Academy] 1213. String- Java (0) | 2019.08.29 |
[SW Expert Academy] 1209. Sum- Java (0) | 2019.08.13 |