[HackerRank] 초심으로 돌아가기~~ Mini-Max Sum C#

이진호·2023년 1월 14일
0
    public static void miniMaxSum(List<int> arr)
    {
        long sum = 0;
        long min, max;
        min=max=arr[0];
        
        foreach(long l in arr){
            sum+=l;
        }
        
        for(int i=1;i<arr.Count;i++){
            if(arr[i]<min) min=arr[i];
            if(arr[i]>max) max=arr[i];
        }
        
        
        Console.WriteLine((sum-max).ToString()+" "+(sum-min).ToString());
    }

위와 같이 작성했다

힌트를 보니 큰 수가 들어갈 수 있다고 64비트 정수를 사용하라~ 는 식으로 적혀 있었다

그렇다 오버 플로우 해결 문제였따

처음에 그냥 arr.Sum() arr.Max() 이런 식으로 구해서 했는데
위 함수들은 int를 반환해서 그런지 오버플로우에 걸리는 것이었따

그래서 함수로 구해주지 않고, 직접 long 타입 변수들을 선언하여 구해주었따

그랬더니 됐다! 다행이다

0개의 댓글

Powered by GraphCDN, the GraphQL CDN