본문 바로가기
프로그래밍/알고리즘 풀이

[알고리즘] 선형검색

by 방구석개발자 2020. 4. 13.
반응형

선형검색은 배열에서 검색하는 방법 가운데 가장 기본적인 알고리즘입니다.

선형 검색은 데이터가 모인 집합의 처음부터 끝까지 하나씩 순서대로 비교하며 원하는 값을 갖는 요소를 만날때까지 검색하는 알고리즘 입니다.

using System; 
using System.Diagnostics; 
using System.Text; 


namespace ConsoleApp4 
{ 
    class Program 
    { 
         
        public static int[,] mdays =new int[,] { 
            { 31,28,31,30,31,30,31,31,30,31,30,31}, //평년 
            { 31,29,31,30,31,30,31,31,30,31,30,31} //윤년 
        }; 


        //해당 년도는 윤년인가?(윤년 true / 평년 false)
        static int isLeap(int year) 
        { 
            return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? 0 : 1; 
        } 

        static int dayofYear(int y, int m,int d) 
        { 
            int days = d; 
            for (int i = 1; i < m; i++) 
            { 
                days += mdays[isLeap(y), i - 1]; 
            } 
            return days; 
        } 

        static void Main(string[] args) 
        { 
            int retry; 
            do 
            { 
                Console.WriteLine("년도를 알려주세요. : "); 
                int year = Convert.ToInt32(Console.ReadLine()); 
                Console.WriteLine("월을 알려주세요. : "); 
                int month = Convert.ToInt32(Console.ReadLine()); 
                Console.WriteLine("일을 알려주세요. : "); 
                int day = Convert.ToInt32(Console.ReadLine()); 

                Console.WriteLine("그해 " + dayofYear(year, month, day) + "일째 입니다."); 

                Console.WriteLine("한번 더할래요? : 1.예/0.아니오"); 
                string sRetry = Console.ReadLine(); 
                retry = Convert.ToInt32(sRetry); 

            } while (retry == 1); 

            ExitKey(); 

        } 
        public static void ExitKey() 
        { 
            Console.WriteLine("프로그램을 종료 하시려면 아무 키나 누르세요."); 
            Console.ReadKey(); 
        } 

    } 
}

 

검색 성공 할때의 실행 결과
검색 실패 할때의 실행 결과

C#으로 코딩하였습니다.

반응형

댓글