본문 바로가기
[C#]백준문제풀이/1차원 배열

백준_C#_10818

by 이원혁 2022. 12. 5.
반응형

최대 최소 문제입니다.

 

int a = int.Parse(Console.ReadLine()); //배열의 크기
            string [] b = Console.ReadLine().Split(' '); //배열로 받을 숫자들
            int max = int.Parse(b[0]); //비교를 위하여 0번째 값을 최대 최소로 지정
            int min = int.Parse(b[0]);
            for(int i=0;i<a;i++) //배열의 크기만큼 반복
            {
                if(int.Parse(b[i]) >max) // 비교할값이 최대보다 크면 최댓값을 변경
                {
                    max = int.Parse(b[i]);
                }
                
                if(int.Parse(b[i]) <min) // 비교할값이 최소보다 작으면 최소값을 변경
                {
                    min = int.Parse(b[i]);
                }
            }
            Console.WriteLine(min + " " + max); // 출력

입니다만 위 방법으로 해결했더니

쓸데없이 속도도 느리고 메모리도 많이 잡아먹는것 같아서 다른 방법으로도 해결해 보았습니다.

첫번째방법은 파싱을 그때그때 받는 방식이라 그쪽을 해결하기 위해 따로 정수형 배열을 만들어보았습니다.

 

int a = int.Parse(Console.ReadLine());
            string [] b = Console.ReadLine().Split(' ');
            int[] num = new int[a];

            for(int i=0;i<a;i++)
            {
                num[i] = int.Parse(b[i]);
            }

            int max = num[0];
            int min = num[0];

            for (int i=0;i<a;i++)
            {
                if(num[i] > max) max = num[i];

                if(num[i] < min) min = num[i];
            }
            Console.WriteLine(min + " " + max);

이렇게 해결했더니 

속도는 줄었으나 메모리 사용량이 증가하였습니다.

 

다른 분들의 결과를 확인해보니 저보다 속도가 2배빠르고 메모리도 2배 덜먹는 코드들이 있는걸 확인하고 아직 공부할게 많다는 생각이 들었습니다.

반응형

'[C#]백준문제풀이 > 1차원 배열' 카테고리의 다른 글

백준_C#_2562 최댓값  (0) 2022.12.10
백준_C#_10807  (0) 2022.12.02