[프로그래머스 Level 1] 두 개 뽑아서 더하기 문제 풀이
❓ 문제
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
제한사항
- numbers의 길이는 2 이상 100 이하입니다.
- numbers의 모든 수는 0 이상 100 이하입니다.
🖨️ 입출력 예
💡 풀이
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public int[] solution(int[] numbers) {
ArrayList<Integer> arr = new ArrayList<Integer>();
for(int i = 0; i < numbers.length; i++) {
for(int j = i + 1; j < numbers.length; j++) {
// 중복 제거
if(!arr.contains(numbers[i] + numbers[j]))
arr.add(numbers[i] + numbers[j]);
}
}
// 정렬
Collections.sort(arr);
// 정답 배열에 넣어주기
int[] answer = new int[arr.size()];
int idx = 0;
for (int i : arr) {
answer[idx++] = i;
}
return answer;
}
}
✏️ comment
Collections.sort(arr)
로 ArrayList 정렬이 가능했다.- ArrayList는 중복이 허용되므로 중복을 체크해주는 코드가 필요하다.
- HashSet은 중복이 허용되지 않으므로 HashSet을 사용해 구현하는 방법도 있다.
HashSet<Type> name = new HashSet<>();
Author And Source
이 문제에 관하여([프로그래머스 Level 1] 두 개 뽑아서 더하기 문제 풀이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yuuuzzzin/프로그래머스-Level-1-두-개-뽑아서-더하기-문제-풀이저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)