반응형
최대 최소 문제입니다.
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 |