우연히 GuguClass를 알게 됐다.
사실 드라마가 나왔을 당시에 친구가 페이스북에서 이 영상에 태그를 해줘서 본 기억은 나는데, 그때는 대충 보고 넘겼다가 이제야 GuguClass의 자세한 내막을 알게 된 것.
https://www.youtube.com/watch?v=UUJKiTcnGK0
백문이 불여일견이라고 자세한 건 유튜브 영상을 보도록 하고,
GuguClass의 실행 결과를 보자면 아래와 같다.
딱 봐도 간단해 보이는 프로그램이지만 몇 가지 유의사항이 있다.
- 곱셈 결과는 총 2자로 출력되어야 한다. 만약 1자라면 2자가 되도록 앞에 Padding을 추가한다.
- 각 단은 탭으로 분리하며, 총 4단씩 묶어 출력한다. 묶음과 묶음 사이에는 빈 줄이 추가되어야 한다.
- 각 행의 끝에는 공백 문자가 삽입되지 말아야 한다.
열 줄로 짜지 말고 한 줄로 짜야 한다.
재밌어 보여서 C#으로 한 줄로 구현하려면 어떻게 할 수 있을까 싶어 구현해 봤다.
Enumerable.Range(2, 8).
Chunk(4).
SelectMany(chunk => Enumerable.Range(1, 9).Select(multiple => string.Join('\t', chunk.Select(num => $"{num} X {multiple} = {num * multiple,2}"))).Append(string.Empty)).
Prepend("< gugu>\n").
ToList().
ForEach(Console.WriteLine);
기본 문법이 아닌 LINQ를 포함해 여러 API를 활용하는 거지만 뭐 어때. 한 줄이면 됐지.
근데 이렇게 한 줄로 짜면 정말 열 줄로 짜는 것보다 가벼워지는 거 맞나...?