728x90
https://programmers.co.kr/learn/courses/30/lessons/68644?language=java
코딩테스트 연습 - 두 개 뽑아서 더하기
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한
programmers.co.kr
주어진 배열에서 숫자 두개를 뽑아서 더했을때 나올수 있는 모든 경우의 수를 구하는 문제입니다.
저같은 경우는 for문을 두번 돌려서 두개를 뽑아내는 모든 경우의수를 계산하여 중복이 없도록 Set 객체를 만들었고 set은 정렬을 할수 없기 때문에 배열에 다시 담아서 정렬하여 출력했습니다.
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
Set<Integer> set = new HashSet<Integer>();
List<Integer> list = new ArrayList<Integer>();
for(int i = 0; i < numbers.length; i++){
for(int j = i + 1; j < numbers.length; j++){
set.add(numbers[i] + numbers[j]);
}
}
int[] answer = new int [set.size()];
for(int i : set){
list.add(i);
}
for(int i = 0; i < list.size(); i++){
answer[i] = list.get(i);
}
Arrays.sort(answer);
return answer;
}
}
728x90
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers]약수의 개수와 덧셈_자바 / 프로그래머스 연습문제(level 1) (0) | 2021.08.23 |
---|---|
[Programmers]서울에서 김서방 찾기_자바 / 프로그래머스 연습문제(level 1) (0) | 2021.08.20 |
[Programmers]예산_자바 / 프로그래머스 연습문제(level 1) (0) | 2021.08.18 |
[Programmers]내적_자바 / 프로그래머스 연습문제(level 1) (0) | 2021.08.12 |
[Programmers]콜라츠 추측_자바 / 프로그래머스 연습문제(level 1) (0) | 2021.08.11 |