방법 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 |