코딩도장

코딩도장

변경이력

돌아가기
2 203개 문자 추가 181개 문자 삭제

2016年08月30日 06:26

코딩초보

허접한 풀이 ... 근데 예제에서 5 12 1 3 8 6 출력 결과 31나오던데 .. 29가 맞나요?? 1,3 이 기숙사로 3 1이 정문 1 6, 8이 기숙사로 8 3이 정문 3 12,1이 기숙사로 12 1이 정문 1 1,3이 기숙사로 3 3+たす1+たす8+たす3+たす12+たす3 +たす1 = 31답변 감사합니다. 덕분에 코드 수정할 수 있었고 잘 이해못한 알고리즘도 이해하게 됐습니다~ ``` #include <stdio.h> #include <stdlib.h> int sort(int* time, int length); int* cal(int* arr ,int count); int sum = 0; void main(void) { int n; int count = 0; int input[16]; scanf("%d",&n); for(int i = 0 ; i < n; i++) { scanf("%d",&input[i]); } int* time = (int*) malloc (sizeof(int) * n); time = input; n = sort(time ,n); if(n%2 != 0) { n--; sum = time[n/2] + time[0]; } int* temp = (int*) malloc (sizeof(int) * n); temp = time; int j = 0; for(int i =0; i < n; i++) { if(n/2 == i) { j++; temp[i] = time[j]; } else temp[i] = time[j]; j++; } for(int i = 0 ; i < (n/2); i++) { temp = cal(temp, n); } printf("\n%d\n",sum); } int* cal(int* arr ,int n) { int* temp = (int*) malloc (sizeof(int) * n) ; for(int i = 0 ; i < n ; i++) { if(i < (n/2)) { sum = sum + arr[((i+1)*2)-1]; if(arr[2] != 0 && n>2) sum = sum + arr[i]; temp[i] = arr[i]; } else { temp[i] = 0; } } return temp; } int sort(int* time, int length) { int temp; for(int i = 0 ; i < (length-1) ; i++) { for(int j = 0 ; j < (length-1) ; j++) { if(time[j] > time[j+1]) { temp = time[j+1]; time[j+1] = time[j]; time[j] = temp; } } } return length; } ```
허접한 풀이 ... 근데 예제에서 5 12 1 3 8 6 출력 결과 31나오던데 .. 29가 맞나요?? 1,3 이 기숙사로 3 1이 정문 1 6, 8이 기숙사로 8 3이 정문 3 12,1이 기숙사로 12 1이 정문 1 1,3이 기숙사로 3 3+たす1+たす8+たす3+たす12+たす3 +たす1 = 31답변 감사합니다. 덕분에 코드 수정할 수 있었고 잘 이해못한 알고리즘도 이해하게 됐습니다~ ``` #include <stdio.h> #include <stdlib.h> int sort(int* time, int length); int* cal(int* arr ,int count); int sum = 0; void main(void) { int n; int count = 0; int input[16]; scanf("%d",&n); for(int i = 0 ; i < n; i++) { scanf("%d",&input[i]); } int* time = (int*) malloc (sizeof(int) * n); time = input; n = sort(time ,n); if(n%2 != 0) { n--; sum = time[n/2] + time[0]; } int* temp = (int*) malloc (sizeof(int) * n); temp = time; int j = 0; for(int i =0; i < n; i++) { if(n/2 == i) { j++; temp[i] = time[j]; } else temp[i] = time[j]; j++; } for(int i = 0 ; i < (n/2); i++) { temp = cal(temp, n); } printf("\n%d\n",sum); } int* cal(int* arr ,int n) { int* temp = (int*) malloc (sizeof(int) * n) ; for(int i = 0 ; i < n ; i++) { if(i < (n/2)) { sum = sum + arr[((i+1)*2)-1]; if(arr[2] != 0 && n>2) sum = sum + arr[i]; temp[i] = arr[i]; } else { temp[i] = 0; } } return temp; } int sort(int* time, int length) { int temp; for(int i = 0 ; i < (length-1) ; i++) { for(int j = 0 ; j < (length-1) ; j++) { if(time[j] > time[j+1]) { temp = time[j+1]; time[j+1] = time[j]; time[j] = temp; } } } return length; } ```
허접한 풀이 ... 근데 예제에서 5 12 1 3 8 6 출력 결과 31나오던데 .. 29가 맞나요?? 1,3 이 기숙사로 3 1이 정문 1 6, 8이 기숙사로 8 3이 정문 3 12,1이 기숙사로 12 1이 정문 1 1,3이 기숙사로 3 3+たす1+たす8+たす3+たす12+たす3 +たす1 = 31답변 감사합니다. 덕분에 코드 수정할 수 있었고 잘 이해못한 알고리즘도 이해하게 됐습니다~ ``` #include <stdio.h> #include <stdlib.h> int sort(int* time, int length); int* cal(int* arr ,int count); int sum = 0; void main(void) { int n; int count = 0; int input[16]; scanf("%d",&n); for(int i = 0 ; i < n; i++) { scanf("%d",&input[i]); } int* time = (int*) malloc (sizeof(int) * n); time = input; n = sort(time ,n); if(n%2 != 0) { n--; sum = time[n/2] + time[0]; } int* temp = (int*) malloc (sizeof(int) * n); temp = time; int j = 0; for(int i =0; i < n; i++) { if(n/2 == i) { j++; temp[i] = time[j]; } else temp[i] = time[j]; j++; } for(int i = 0 ; i < (n/2); i++) { temp = cal(temp, n); } printf("\n%d\n",sum); } int* cal(int* arr ,int n) { int* temp = (int*) malloc (sizeof(int) * n) ; for(int i = 0 ; i < n ; i++) { if(i < (n/2)) { sum = sum + arr[((i+1)*2)-1]; if(arr[2] != 0 && n>2) sum = sum + arr[i]; temp[i] = arr[i]; } else { temp[i] = 0; } } return temp; } int sort(int* time, int length) { int temp; for(int i = 0 ; i < (length-1) ; i++) { for(int j = 0 ; j < (length-1) ; j++) { if(time[j] > time[j+1]) { temp = time[j+1]; time[j+1] = time[j]; time[j] = temp; } } } return length; } ```
1 Original

2016年08月29日 08:13

코딩초보

허접한 풀이 ... 근데 예제에서 5 12 1 3 8 6 출력 결과 31나오던데 .. 29가 맞나요?? 1,3 이 기숙사로 3 1이 정문 1 6, 8이 기숙사로 8 3이 정문 3 12,1이 기숙사로 12 1이 정문 1 1,3이 기숙사로 3 3+たす1+たす8+たす3+たす12+たす3 +たす1 = 31 ``` #include <stdio.h> #include <stdlib.h> int sort(int* time, int length); int* cal(int* arr ,int count); int sum = 0; void main(void) { int n; int count = 0; int input[16]; scanf("%d",&n); for(int i = 0 ; i < n; i++) { scanf("%d",&input[i]); } int* time = (int*) malloc (sizeof(int) * n); time = input; n = sort(time ,n); if(n%2 != 0) { n--; sum = time[n] + time[0]; } int* temp = (int*) malloc (sizeof(int) * n); temp = time; for(int i = 0 ; i < (n/2); i++) { temp = cal(temp, n); } printf("\n%d\n",sum); } int* cal(int* arr ,int n) { int* temp = (int*) malloc (sizeof(int) * n) ; for(int i = 0 ; i < n ; i++) { if(i < (n/2)) { sum = sum + arr[((i+1)*2)-1]; if(arr[2] != 0 && n>2) sum = sum + arr[i]; temp[i] = arr[i]; } else { temp[i] = 0; } } return temp; } int sort(int* time, int length) { int temp; for(int i = 0 ; i < (length-1) ; i++) { for(int j = 0 ; j < (length-1) ; j++) { if(time[j] > time[j+1]) { temp = time[j+1]; time[j+1] = time[j]; time[j] = temp; } } } return length; } ```
허접한 풀이 ... 근데 예제에서 5 12 1 3 8 6 출력 결과 31나오던데 .. 29가 맞나요?? 1,3 이 기숙사로 3 1이 정문 1 6, 8이 기숙사로 8 3이 정문 3 12,1이 기숙사로 12 1이 정문 1 1,3이 기숙사로 3 3+たす1+たす8+たす3+たす12+たす3 +たす1 = 31 ``` #include <stdio.h> #include <stdlib.h> int sort(int* time, int length); int* cal(int* arr ,int count); int sum = 0; void main(void) { int n; int count = 0; int input[16]; scanf("%d",&n); for(int i = 0 ; i < n; i++) { scanf("%d",&input[i]); } int* time = (int*) malloc (sizeof(int) * n); time = input; n = sort(time ,n); if(n%2 != 0) { n--; sum = time[n] + time[0]; } int* temp = (int*) malloc (sizeof(int) * n); temp = time; for(int i = 0 ; i < (n/2); i++) { temp = cal(temp, n); } printf("\n%d\n",sum); } int* cal(int* arr ,int n) { int* temp = (int*) malloc (sizeof(int) * n) ; for(int i = 0 ; i < n ; i++) { if(i < (n/2)) { sum = sum + arr[((i+1)*2)-1]; if(arr[2] != 0 && n>2) sum = sum + arr[i]; temp[i] = arr[i]; } else { temp[i] = 0; } } return temp; } int sort(int* time, int length) { int temp; for(int i = 0 ; i < (length-1) ; i++) { for(int j = 0 ; j < (length-1) ; j++) { if(time[j] > time[j+1]) { temp = time[j+1]; time[j+1] = time[j]; time[j] = temp; } } } return length; } ```
코딩도장

코딩도장은 프로그래밍 문제풀이를 통해서 코딩 실력을 수련(Practice)하는 곳입니다.

코딩도장 © 2014 · 문의 [email protected]
피드백 · 개인정보취급방침 · RSS

AltStyle によって変換されたページ (->オリジナル) /