[백준/C#] 15552번 빠른 A+B

dev.hyeon·2022년 8월 1일
0

알고리즘

목록 보기
27/44
post-thumbnail

15552번 빠른 A+B

풀이

입출력 방식의 속도에 유의하여 a+b의 결과를 구하는 문제이다.
Console.WriteLine()의 호출 횟수가 많을수록 시간이 많이 걸린다. 따라서 출력을 한번에 하기 위해 모든 a+b의 출력값을 하나의 문자열로 만들어 출력하였다.

문자열을 이어 만드는 방법에는 2가지가 있다.
1. String의 덧셈
2. StringBuilder 클래스의 Append 함수

  • String
    String의 문자열을 변경하면 변경된 문자열을 위한 새로운 String을 만들어낸다. 따라서 문자열을 계속 변경할 경우 메모리 낭비가 발생하여 성능저하가 일어날 수 있다.
    문자열을 수정하는 횟수가 적을 경우나 문자열을 작성하는 동안 광범위한 검색 작업을 수행해야 할 때 사용하는 것이 좋다.(StringBuilder 클래스의 String의 IndexOf() 등의 함수가 없다.)
  • StringBuilder
    StringBuilder는 변경 가능한 문자열 클래스이다. 문자열을 수정할 때마다 새로운 변수를 생성하지 않고 결합한다.
    사용자의 입력 등 문자열 변경 횟수가 정해지지 않았거나 문자열에서 많은 횟수의 변경이 예상될 때 사용하ㅏ는 것이 좋다.

코드

using System;
using System.Text;	// StringBuilder 클래스 가져오기 위해 네임스페이스 가져옴

int n = int.Parse(Console.ReadLine());
// StringBuilder 객체 생성
StringBuilder sb = new StringBuilder();

for (int i = 0; i < n; i++)
{
	// a, b를 읽어서
    string[] s = Console.ReadLine().Split();
    // "a+b의 값 + 개행문자"를 stringBuilder 객체의 끝에 추가
    sb.Append(int.Parse(s[0]) + int.Parse(s[1]) + "\n");
}
// StringBuilder 객체 출력
Console.WriteLine(sb);

0개의 댓글