백준

백준 3052번 c#

대왕군 2024. 1. 10. 15:40

방법 1 - true 배열

using System;

namespace Baekjoon
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //42로 미지수를 나눴을 때 나머지는 무조건 41 이하라는 것을 이용한 방법

            //배열 0~41까지 생성
            bool[] numbers = new bool[42];
            //결과 숫자
            int result = 0;

            //숫자 10개 적어서 42로 나눈 나머지 저장
            //그리고 나머지 숫자와 배열 index가 같은 배열칸에 true를 저장
            //이렇게 되면 같은 나머지 여러번 나와도 중복처리 가능
            for (int i = 0; i < 10; i++)
            {
                numbers[int.Parse(Console.ReadLine()) % 42] = true;
            }

            for (int i = 0; i < numbers.Length; i++)
            {
                //생성된 나머지 숫자와 같은 index의 배열이 나올때마다 result는 1씩 증가
                if (numbers[i] == true)
                {
                    result++;
                }
            }
            //정답출력
            Console.WriteLine(result);

        }
    }
}

 

방법 2 - Distinct

using System;

namespace Baekjoon
{
    internal class Program
    {
        static void Main(string[] args)
        {

            int[] numbers = new int[10];

            //숫자 10개 적어서 42로 나눈 나머지 저장
            for (int i = 0; i < 10; i++)
            {
                numbers[i] = int.Parse(Console.ReadLine()) % 42;
            }

            
            //Distinct는 배열의 중복된 값을 한개로 묶어 새로운 배열을 만드는 기능이다
            Console.WriteLine(numbers.Distinct().Count());

        }
    }
}

'백준' 카테고리의 다른 글

백준 9086번 c#  (0) 2024.01.10
백준 15552번 c#  (0) 2024.01.10
백준 10811번 c#  (0) 2024.01.10
백준 2743번 c#  (0) 2024.01.10
백준 27866번 c#  (0) 2024.01.10