[백준] 11021번 A + B - 7

권태형·2023년 12월 11일

알고리즘

목록 보기
22/33

기본문제로 항상 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번째 인자에 반복조건을 거는게 아닌 다른 조건을 걸 수 있다는 것도 알게 되었다. 신기한 방식이지만, 속도나 메모리 측면에서 나의 코드보다 부족한건 무엇 때문일까?

profile
22년 12월 개발을 시작한 신입 개발자 ‘권태형’입니다. 포스팅 하나하나 내가 다시보기 위해 쓰는 것이지만, 다른 분들에게도 도움이 되었으면 좋겠습니다. 💯컬러폰트가 잘 안보이실 경우 🌙다크모드를 이용해주세요.😀 지적과 참견은 언제나 환영합니다. 많은 댓글 부탁드립니다.

0개의 댓글