Algorithm/BAEKJOON

[C#]백준 2563 색종이 - Hide

zz0zz9 2024. 11. 10. 23:12
반응형
반응형

https://www.acmicpc.net/problem/2563

문제 요약

도화지 위에 색종이가 붙은 영역의 넓이 출력하기

 

 

 

풀이
var h = new HashSet<int>();
for(int i=int.Parse(Console.ReadLine());i-->0;)
{
    var a=Console.ReadLine().Split().Select(int.Parse).ToArray();
    for(int t=0;t<100;t++)h.Add((a[0]+t/10)*100+(a[1]+t%10));
}
Console.WriteLine(h.Count);

자동으로 중복을 제거해 주기 위해 HashSet 사용

 

 

HashSet 말고 그냥 배열 써도 가능

var h = new int[10000];
for(int i=int.Parse(Console.ReadLine());i-->0;)
{
    var a=Console.ReadLine().Split().Select(int.Parse).ToArray();
    for(int t=0;t<100;t++)h[(a[0]+t/10)*100+(a[1]+t%10)]=1;
}
Console.WriteLine(h.Count(x=>x==1));

사실 x, y > 90인 경우처럼 +10을 해서 도화지 바깥으로 나가는 경우에 대한 예외처리를 해줘야 하지만

안 해줘도 딱히 틀렸습니다라고 나오지 않기 때문에 가능한 코드 ㅋㅋㅋ 이거 뭔가 나중에 틀렸다고 판정 바뀔 거 같은...


오늘도 로파이 소녀 덕분에 한 문제 풀었다

집중력 너무 약해 ㅠㅠ

반응형