CHashtag

[백준] [C#] 21919. 소수 최소 공배수 본문

알고리즘

[백준] [C#] 21919. 소수 최소 공배수

HyoSeong 2022. 2. 27. 12:42
반응형

안녕하세요.

오늘은 프로그래머스 코딩테스트 연습 문제인 "제목" 을 풀어 보았습니다.

 

 

문제 링크


https://programmers.co.kr/learn/courses/30/lessons/12982

 

 

문제 풀이 방법


자세한 문제 풀이는 주석으로 남겨두었습니다.

 

 

코드


using System;
using System.Collections.Generic;

namespace 백준
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string s1 = Console.ReadLine();
            string s2 = Console.ReadLine();

            string[] s2a = s2.Split(' ');

            HashSet<int> rList = new HashSet<int>();

            for (int i = 0; i < int.Parse(s1); i++)
            {
                int value = int.Parse(s2a[i]);
				
                // 소수들을 HashSet에 넣어준다.
                if(IsPrime(value))
                {
                    rList.Add(value);
                }
            }

			// 소수가 없다면 -1을
            if (rList.Count == 0)
            {
                Console.WriteLine(-1);
            }
            // 있다면 소수들의 곱을 return한다.
            else
            {
                long result = 1;

                foreach (int i in rList)
                {
                    result *= i;
                }

                Console.WriteLine(result);
            }
        }

        public static bool IsPrime(int value)
        {
            if(value <= 1)
            {
                return false;
            }

            if(value == 2)
            {
                return true;
            }

            int j = (int)Math.Floor(Math.Sqrt(value));
            for (int i = 2; i <= j; i++)
            {
                if (value % i == 0)
                {
                    return false;
                }
            }
            return true;
        }
    }
}

감사합니다.

반응형