2024-03-20 01:34:12

오늘 푼 문제 중 대부분이 입출력 시간을 맞추지 못해 시간 초과로 실패한 경우가 대부분이었다.

 

StringBuilder

StringBuilder는 불변성을 지니는 String 클래스의 단점을 보완하기 위해서 존재한다.

위에서 말했듯이 String 클래스는 불변하기에, 우리가 값을 수정할 때마다 저장공간에 새로운 공간을 받아서 해당 공간에 수정한 값을 집어넣는 방식으로 작동한다. (Reference값 변경)

즉 우리는 String의 값을 수정할 때마다 새로운 저장공간에 새로운 문자열을 '생성' 하고 있는 거다.

하지만 StringBuilder 는 내부적으로 값을 조합하고 삭제해서, 새로운 인스턴스 생성하지 않는다고 한다.

 

StreamReader / Writer

StreamReader와 Writer는 System.IO 네임스페이스에 속하는 클래스로 주로 파일 입출력에 사용된다고 한다.

StreamReader는 어떤 스트림(대표적으로 파일)을 읽어오고,

StreamWriter는 어떤 스트림을 쓴다.

 

OpenStandardInput / Output

간단하게 스트림을 열어주는 메소드다.

이를 통해 스트림을 읽어 들일 수 있거나, 내보낼 수 있다.

 

위의 StreamReader와 조합해서 사용한다.

ex) using var SR = new StreamReader(Console.OpenStandardInput());

      using var SW = new StreamWriter(Console.OpenStandardOutput());

     ...

     Arr[int.Parse(SR.ReadLine())];

     SW.WriteLine(Arr[i]);

'생각 두 접시' 카테고리의 다른 글

[java] Getter / Setter  (0) 2024.05.31
[java] 접근 제한자  (0) 2024.05.31
[java] 패키지  (0) 2024.05.31
중복 요소 제거와 특정 키를 기준으로 오름차순 정렬하기  (0) 2024.03.20
static에 관하여  (0) 2024.03.20