728x90
programmers.co.kr/learn/courses/30/lessons/68644
from itertools import combinations
def solution(numbers):
answer = []
numbers_set=set()
for i in combinations(numbers,2):
numbers_set.add(sum(i))
answer= sorted(list(numbers_set))
return answer
python으로 빠르게 작성하였다
C로는 혼자 작성하지 못하여서 타인의 코드를 가져왔다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#define SWAP(a,b) {int c=a; a=b; b=c;}
// numbers_len은 배열 numbers의 길이입니다.
int* solution(int numbers[], size_t numbers_len) {
int* answer = (int*)malloc(sizeof(int) * 200);
int cnt = 0;
for (int i = 0; i < numbers_len; i++)
{
for (int j = i + 1; j < numbers_len; j++)
{
int tmp = numbers[i] + numbers[j];
// 중복 제거
int flag = 1;
for (int k=0; k<cnt; k++)
{
if (answer[k] == tmp)
flag = 0;
}
if (flag==1)
answer[cnt++] = tmp;
}
}
// bubble sort
for (int i=0; i< cnt; i++){
for (int j=0; j< cnt-1-i; j++){
if (answer[j]>answer[j+1]){
SWAP(answer[j], answer[j+1]);
}
}
}
return answer;
}
이렇게 쉬운것도 혼자 못한다니 참으로 부끄럽다!
더 열심히 해야겠다.
'STUDY > Algorithm' 카테고리의 다른 글
[프로그래머스] 최솟값만들기 python, C (0) | 2021.04.02 |
---|---|
[프로그래머스] 3진법 뒤집기, python, C (0) | 2021.04.02 |
[프로그래머스] [3차] n진수 게임 python (0) | 2021.04.01 |
[프로그래머스] [3차] 파일명 정렬 python (0) | 2021.04.01 |
[백준] 5427 불 python (0) | 2021.03.31 |