2022. 6. 1. 15:12ㆍC#/백준 알고리즘
https://www.acmicpc.net/problem/15552
15552번: 빠른 A+B
첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.
www.acmicpc.net
처음엔 StreamReader나 StringBuilder를 쓰지 않고
아래의 코드로 했었다.
int repeat = Int32.Parse(Console.ReadLine());
for(int i = 0; i < repeat; i++)
{
string c = Console.ReadLine();
string[] d = c.Split();
int[] e = new int[] { Int32.Parse(d[0]), Int32.Parse(d[1]) };
Console.WriteLine(e[0] + e[1]);
}
그러나 시간 초과가 떠서 StringBuilder 를 조사해보고 적용시켰더니 됐다.
적용시킨 소스 코드
using System;
using System.Text;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
App.FastAddNums();
}
public class App
{
public static void FastAddNums()
{
int repeat = int.Parse(Console.ReadLine());
StringBuilder sb = new StringBuilder();
char[] chars = { '\n', ' ' };
for (int i = 0; i < repeat; i++)
{
sb.AppendLine(Console.ReadLine());
}
string[] d = sb.ToString().Split(chars);
sb.Remove(0, sb.Length);
for(int s = 0; s < d.Length - 1; s += 2)
{
sb.AppendFormat("{0}", int.Parse(d[s]) + int.Parse(d[s + 1]));
sb.AppendLine();
}
Console.WriteLine(sb.ToString());
}
}
}
}
https://rivergembig-gameprogramming.tistory.com/134
[C#] String Builder란?
https://docs.microsoft.com/ko-kr/dotnet/standard/base-types/stringbuilder .NET에서 StringBuilder 클래스 사용 .NET에서 StringBuilder 클래스를 사용하는 방법을 알아봅니다. 이 클래스를 사용하면 새 개체..
rivergembig-gameprogramming.tistory.com
문제는 난 StreamReader는 쓰지 않았는데 해결이 되어버렸다는 것이다.
Stream Reader를 적용시킨 다른 사람들의 풀이를 알아보자.
https://sete3683.tistory.com/16
백준 15552 C#) 빠른 A+B
이 문제에서 익혀야 하는 것은 단순히 A+B를 반복하는 방법이 아니라 최대한 입출력을 빠르게 하는 방법이다. 별로 어렵지 않기 때문에 추후 입출력이 많은 문제가 나올 때마다 써먹으면 큰 도움
sete3683.tistory.com
표준 입출력과 Stream 입출력의 차이점?
그러나 시간은 StringBuilder와 StreamReader 모두 사용하여 푼 것보다
Stream 입출력만 사용하여 푼 것이 가장 빨랐다.