
기본문제로 항상 A+B가 잘 나오나 보다.
이번에도 똑같이 첫번째에서 반복문의 개수 T를 받게 된다. 그리고 나머지 받은값에 대해 출력을 특정포멧에 맞추어 출력하게 끔 되어있다.
일단 입력 T 의 최대값이 따로 설정되지 않아서 무한대로 가정하면 입력 및 출력 테스트 케이스가 매우 많아질 것이기에, 이전에 사용했던 StringBuilder 와 StreamReader를 사용하는 쪽으로 맞춰봐야 겠다.
using System.Text;
StreamReader sr = new(Console.OpenStandardInput());
StringBuilder sb = new();
int n = int.Parse(sr.ReadLine());
for(int i = 0; i++ < n;){
int[] x = Array.ConvertAll(sr.ReadLine().Split(), int.Parse);
int result = x[0] + x[1];
sb.AppendLine($"Case #{i}: {result}");
}
Console.WriteLine(sb);

;을 빼먹어서 발생한 컴파일 에러를 제외하고는 한방에 정답이 나왔다. 코드길이는 길지만, 속도도 메모리도 크게 문제없어 보이고, 내 생각엔 나름 깔끔하게 작성된거 같았다.
for(int e=P(),i=0;i++<e;Console.Write($"Case #{i}: {P()}\n"));
int P()=>Console.ReadLine().Split().Sum(int.Parse);

이렇게 짧게 쓸 수도 있구나.. Sum()메소드의 사용법에 대해 생각할 수 있게 됬고, 또 for문의 3번째 인자에 반복조건을 거는게 아닌 다른 조건을 걸 수 있다는 것도 알게 되었다. 신기한 방식이지만, 속도나 메모리 측면에서 나의 코드보다 부족한건 무엇 때문일까?