Fascination
article thumbnail

[문제]

 

Mini-Max Sum | HackerRank

Find the maximum and minimum values obtained by summing four of five integers.

www.hackerrank.com

 

 

[문제 설명]

- 입력: 5개의 띄어쓰기로 구분되는 숫자 5개를 한 줄로 입력받음
- arr: 주어진 arr에는 5개의 정수 값을 입력받을 수 있음
- 출력: 32bit 정수보다 커야함, 5개의 숫자 중 4개를 골라 가장 작은 합과 가장 큰 합을 출력

 

 

[문제 풀이]

- 입력 받은 arr를 정렬(버블 정렬 사용)하여 오름차순으로 정리

- for문을 이용하여 두개의 출력 값을 계산

  > 가장 합이 작을 때는 인덱스 0~3까지의 합

  > 가장 합이 클 때는 인덱스 1~4까지의 합

- 출력 값이 32bit 정수보다 커야하므로 결과 값을 나타내는 변수들을 unsigned int로 선언하여 사용

 

 

[코드]

void miniMaxSum(vector<int> arr) {
    unsigned int result1=0,result2=0,temp;
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 4 - i; j++) {
            if (arr[j] > arr[j + 1]) {   
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    for(int i=0;i<4;i++) result1= result1+arr[i];
    for(int j=1;j<5;j++) result2= result2+arr[j];
    cout<<result1<<" "<<result2<<endl;
}

 

 

[실행결과]

profile

Fascination

@euna-319

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!