반응형
#include <iostream>
#define _CRT_SECURE_NO_WARNINGS
using namespace std;
int main() {
int a,i=0;
int arr[1001];
cin >> a;
i = a;
while (i > 0)
{
cin >> arr[a-i];
i--;
}
for (int i = 0; i < a; i++)
{
for (int j = i; j < a; j++)
{
if (arr[i] > arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
int time = 0;
for (int i = 0; i < a; i++)
{
for (int j = 0; j < i+1; j++)
{
time += arr[j];
}
}
cout << time;
}
언어 : C++
풀이: 가장 적은 시간부터 배열에 앞으로 두고, 정렬이 완료된 상태에서 각 인덱스까지 걸리는 시간을 합해서 time 변수에 합산하는 방식으로 풀었습니다.
다른사람에 코드
#include<stdio.h>
int main(){
int i,n,j,p[1001],temp,sum=0;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&p[i]);
}
for(int i=1; i<n;i++){
for(int j=0; j<n-i; j++){
if(p[j]>p[j+1]){
int temp = p[j];
p[j] = p[j+1];
p[j+1]=temp;
}
}
}
for(int i=0; i<n ;i++){
for(int j=0 ; j<=i ;j++){
sum+=p[j];
}
}
printf("%d",sum);
}
언어: c
풀이: for 문으로 입력 받은 후 이중 버블 정렬로 가장 오래 걸리는 시간을 뒤에 저장하는 방법으로 구현하셨고, 정렬된 뒤 시간을 구하는 로직은 같습니다.
반응형