두 개 뽑아서 더하기
문제 설명
정수 배열 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]
입출력 예 설명
입출력 예 #1
2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.)
3 = 2 + 1 입니다.
4 = 1 + 3 입니다.
5 = 1 + 4 = 2 + 3 입니다.
6 = 2 + 4 입니다.
7 = 3 + 4 입니다.
따라서 [2,3,4,5,6,7] 을 return 해야 합니다.
입출력 예 #2
2 = 0 + 2 입니다.
5 = 5 + 0 입니다.
7 = 0 + 7 = 5 + 2 입니다.
9 = 2 + 7 입니다.
12 = 5 + 7 입니다.
따라서 [2,5,7,9,12] 를 return 해야 합니다.
def solution(numbers):
answer = []
for i in range(len(numbers)):
for j in range(i + 1, len(numbers)):
sum_num = numbers[i] + numbers[j]
if sum_num not in answer:
answer.append(sum_num)
answer.sort()
return answer
def solution(numbers):
answer = []
for i in range(len(numbers)):
for j in range(i + 1, len(numbers)):
sum_num = numbers[i] + numbers[j]
answer.append(sum_num)
return sorted(list(set(answer)))
java에는 python의 set과 같은 자료형이 없는거같아서 answer 배열에 저장하려는 값이 존재하는지 확인하는 과정을 추가했다. 총 몇개가 추가될지 몰라 ArrayList로 변수를 생성하고 Arrays의 sort함수를 사용하여 오름차순 정렬하기 위해 배열로 바꾸는 작업도 추가했다. 확실히 python이 코드짜기는 쉬운데 이게 진짜 python이 쉬운건지 내가 java를 몰라서 그런건지는 모르겠다...ㅠㅠ
import java.util.Arrays;
import java.util.ArrayList;
class Solution {
public int[] solution(int[] numbers) {
ArrayList<Integer> answer_list = new ArrayList<Integer>();
int sum;
for (int i = 0; i < numbers.length; i++) {
for (int j = i + 1; j < numbers.length; j++) {
sum = numbers[i] + numbers[j];
if (!answer_list.contains(sum)) {
answer_list.add(sum);
}
}
}
int[] answer = new int[answer_list.size()];
int index = 0;
for (int num: answer_list) {
answer[index++] = num;
}
Arrays.sort(answer);
return answer;
}
}