[BOJ][C#] 2428 표절

LimJaeJun·2023년 11월 25일
0

PS/BOJ

목록 보기
50/108

📕 문제

📌 링크

📗 접근 방식

  • 입력받은 파일들의 크기 배열을 오름차순으로 정렬시킨다.
  • 그 후, 각 파일에 대해 이진 탐색을 수행합니다. 이진 탐색을 통해 현재 파일의 0.9배보다 작은 파일들의 개수를 구합니다.

📘 코드

namespace BOJ_2428
{
    class Program
    {
        static void Main()
        {
            int n = int.Parse(Console.ReadLine());

            int[] files = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
            
            Array.Sort(files);

            long answer = 0;
            for (int i = 1; i < n; i++)
            {
                answer += BinarySearch(i, files);
            }

            Console.WriteLine(answer);
        }

        static long BinarySearch(int index, int[] files)
        {
            int start = 0;
            int end = index - 1;
            while (start <= end)
            {
                int mid = (start + end) / 2;
                if (files[mid] < files[index] * 0.9)
                {
                    start = mid + 1;
                }
                else
                {
                    end = mid - 1;
                }
            }

            return index - start;
        }
    }
}

📙 오답노트

📒 알고리즘 분류

  • 정렬
  • 이분 탐색
profile
Dreams Come True

0개의 댓글

관련 채용 정보