반응형
반응형

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

문제 요약

A에는 속하면서 B에는 속하지 않는 모든 원소를 구해서 첫째 줄에 그 개수, 둘째 줄에 원소를 오름차순으로 출력하기(없으면 0만 출력하기)

 

 

 

참고

A.Except(B) : A에는 있지만 B에는 없는 원소 컬렉션 반환(=차집합)

A.Union(B) : 합집합

A.Intersect(B) : 교집합

 

A.Any() : A에 원소가 하나라도 있으면 True, 아니면 False 반환

 

 

 

풀이
Console.ReadLine().Split();
var A = Console.ReadLine().Split().Select(int.Parse).ToArray();
var B = Console.ReadLine().Split().Select(int.Parse).ToArray();
var r = A.Except(B).OrderBy(x=>x).ToArray();
if (r.Length == 0)
{
    Console.WriteLine(0);
}
else
{
    Console.WriteLine(r.Length);
    Console.WriteLine(string.Join(" ", r));
}

 

 

 

숏코딩

입력을 메서드로 만들어서 코드 줄이기(형식 중요하지 않음)

입력 첫 번째 줄은 중요하지 않음

(오름차순)정렬해야 하니까 OrderBy(int.Parse)해주기(문자열로 입력 받았기 때문에 괄호 안에 int.Parse 작성)

더보기
var P=()=>Console.ReadLine().Split();P();var r=P().Except(P()).OrderBy(int.Parse);
Console.Write(r.Any()?$"{r.Count()}\n{string.Join(" ",r)}":0);

 


LINQ 메서드들 너무 좋아 너무 편해

반응형

+ Recent posts