C#

백준 C# 1978 문제 풀이

psb08 2024. 10. 13. 03:01
728x90

문제 링크 : https://www.acmicpc.net/problem/1978

목차

1 설명

 

2 내 코드

 

3 문제 풀이 해석 내용

 

4 실행 결과

 

설명

백준 브론즈 2 문제 입니다.

 

 

내 코드

int input = Convert.ToInt32(Console.ReadLine()); 
string[] s = Console.ReadLine().Split(' '); 
int[] inputNum = Array.ConvertAll(s, int.Parse); 

bool primeNum;
int count = 0;

foreach (var num in inputNum)
{
    primeNum = true;
    if (num > 1) 
    {
        for (int i = 2; i < num; i++)
        {
            if (num % i == 0) 
            {
                primeNum = false; 
                break;
            }
        }
        if (primeNum) count++; 
    }
}

Console.WriteLine(count);

 

문제 풀이 해석 내용

입력 처리

int input = Convert.ToInt32(Console.ReadLine()); 
string[] s = Console.ReadLine().Split(' '); 
int[] inputNum = Array.ConvertAll(s, int.Parse); //이야

첫 번째 줄에서 정수 input을 입력받습니다. 이는 입력될 숫자의 개수를 나타내는 것으로 보입니다.
두 번째 줄에서 공백으로 구분된 숫자들을 입력받아 문자열 배열 s로 저장합니다.
Array.ConvertAll(s, int.Parse)를 사용하여 문자열 배열을 정수 배열 inputNum으로 변환합니다.

 

 

변수 초기화

bool primeNum;
int count = 0;

primeNum은 현재 숫자가 소수인지 여부를 저장하는 변수입니다.
count는 소수의 개수를 세기 위한 변수로 초기화합니다.

 

 

소수 판별

foreach (var num in inputNum)
{
    primeNum = true;
    if (num > 1) 
    {
        for (int i = 2; i < num; i++)
        {
            if (num % i == 0) 
            {
                primeNum = false; 
                break;
            }
        }
        if (primeNum) count++; 
    }
}

inputNum 배열의 각 숫자에 대해 반복합니다.
num이 1보다 큰 경우에만 소수 판별을 진행합니다.
2부터 num-1까지 반복하며, 만약 num이 i로 나누어 떨어지면 (num % i == 0), primeNum을 false로 설정하고 반복을 중단합니다.
소수로 판별되면 (primeNum이 true인 경우) count를 증가시킵니다.

 

 

결과 출력

Console.WriteLine(count);

최종적으로 소수의 개수를 출력합니다.

 

실행 결과

실행 결과

728x90

'C#' 카테고리의 다른 글

백준 C# 11653 문제 풀이  (0) 2024.10.16
백준 C# 2581 문제 풀이  (0) 2024.10.14
백준 C# 9506 문제 풀이  (0) 2024.10.12
백준 C# 2563 문제 풀이  (0) 2024.10.11
백준 C# 2501 문제 풀이  (0) 2024.10.10