Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

시작은 0부터

6. 백준 1차원 배열 4단계 : 평균(1546) 본문

C# 학습일지

6. 백준 1차원 배열 4단계 : 평균(1546)

0base 2022. 7. 7. 23:22

수업을 진행하면서 교수님께서 백준문제를 풀게 하셨다. 배열까지는 그래도 개념정도는 이해하고 있다고 생각했는데 막상 문제를 풀려니 쉽게 풀리지 않는다.또한 답을 맞추더라도 정해진 가이드라인에 맞춰 만든 느낌이라기보다는 억지로 구현한 느낌이다. (반복문 단계 문제를 그냥 조건문으로 푼다던지..)

            int N = int.Parse(Console.ReadLine()); //경우의 수 최대개수 설정
            string[] str = Console.ReadLine().Split(' '); //경우의 수 입력 후 띄어쓰기로 분리
            double[] a = new double[N];
            double Max = 0.0; //최대값 초기화. 소수점까지 입력하지 않으면 소수점 출력이 안됨
            double sum = 0.0;
           	

            
            for (int i = 0; i < N; i++)
            {
                a[i] = double.Parse(str[i]); //입력값들을 배열 a 에 차례로 하나씩 넣는다
            }
            for (int i = 0; i < a.Length; i++) //최대값 구하기
            {
                if (a[i] > Max) //배열 a랑 최대값을 비교하여 클 때마다 갱신
                {
                    Max = a[i];
                }
            }

            for (int j = 0; j < N; j++)
            {
                a[j] = a[j] * 100.0 / Max / N; //경우의 수마다 평균값으로 변환
                if (a[j] == Max) //최대값은 평균값 계산에서 제외
                {
                    a[j] = 0.0;
                }
                else
                {
                	sum += a[j];  //최대값 이외에는 합에 더함
                }
            }
  
            Console.WriteLine("{0}", (double)sum);

학원 컴퓨터에서는 정상적으로 작동하는 걸 확인하고 백준에서도 맞다고 나왔는데 똑같은 코드를 집에서 사용하니 입력값을 배열에 넣는 부분에서부터 오류가 뜬다. 같은 코드라도 무언가가 호환이 안되서 그런걸까? 문제를 찾아야겠다.

단계를 하나씩 올라갈수록 문제푸는 속도가 현저히 느려지고 있다.

코딩과 수학은 다르다지만 수학에 대한 이해도가 높을수록 코딩의 활용도가 높아지는 건 확실한 것 같다는 걸 문제를 풀면서 느낀다. 오랜기간 내려놓았던 수학을 다시 집어들어야 할 때가 왔다.