반응형
두 개 뽑아서 더하기
문제 설명
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
예시
numbers | result |
[2,1,3,4,1] | [2,3,4,5,6,7] |
[5,0,2,7] | [2,5,7,9,12 |
코드 해석 및 전체 코드
해석
//1. 인덱스 + 인덱스
//2. 앞 번호와 같을 시 continue
//3. 정렬
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int* solution(int numbers[], size_t numbers_len) {
int* array = (int*)malloc(sizeof(int) * 1000);
for(int i = 0; i < 1000;i++){
array[i] = 0;
}
int k = 0;
for(int i = 0; i < numbers_len; i++){
for(int j = i+1; j <numbers_len; j++){
array[k] = numbers[i] + numbers[j];
int num = k;
for(int z = 0; z < num; z++){
if(array[num] == array[z]) {
k--;
}
}
k++;
}
}
int* answer = (int*)malloc(sizeof(int) * k);
for(int i = 0; i < k; i++)
answer[i] = array[i];
free(array);
for(int i = 0; i < k - 1; i++){
for(int j = 0; j < k - 1 - i; j++){
if(answer[j] > answer[j+1]) {
int temp = answer[j];
answer[j] = answer[j+1];
answer[j+1] = temp;
}
}
}
return answer;
}
반응형
'코딩 테스트 > [JAVA] programmers 코딩 테스트 연습' 카테고리의 다른 글
[No.11] 문자열 내림차순으로 배치하기 / 프로그래머스 코딩 테스트 연습 JAVA (0) | 2021.06.07 |
---|---|
[No.8] 2016년 / 프로그래머스 코딩 테스트 연습 JAVA (0) | 2021.06.05 |
[No.6] 3진법 뒤집기/ 프로그래머스 코딩 테스트 연습 (0) | 2021.06.03 |
[No.5] 약수의 개수와 덧셈 / 프로그래머스 코딩 테스트 연습 (0) | 2021.06.03 |
[No.4] 음양 더하기 / 프로그래머스 코딩 테스트 연습 (0) | 2021.06.02 |
댓글