알고리즘) Stringbuilder 왜 사용할까?

2024. 1. 11. 23:45· 💻개발/JAVA

알고리즘을 푸는데 결과를 출력할 때 나는 보통 아래와 같이 풀었다. 

for(int i=0; i< N; i++){
System.out.println(arr[i]);
}

 

그런데 문제에서 시간 초과가 났다. 

 

찾아보니 정렬 알고리즘을 제외하고도 저 출력문에도 문제가 있다는 것을 알게 되었다. 

 

다른 사람들 풀이를 찾아보니 출력을 할 때, StringBuilder를 사용해서 풀었다.

그런데 나는 똑같이 for문을 사용하는데 왜 단순 print문은 안 되고, StringBuilder는 되는 걸까?에 대한 의문을 가지게 되었다. 

 

그 이유는 println을 사용하여 출력할 때마다 새로운 라인을 생성하고 출력하는 동작을 수행하는데, 이 과정에서 불필요한 라인 생성 및 출력 작업이 발생하기 때문이다.

그렇기 때문에 연산면에서 많은 시간과 자원을 사용하게 되어 속도가 떨어질 수밖에 없다. 

 

반면에 StringBuilder를 사용하면, 주소 하나에 값만 수정해서 문자열 조작이 한 번에 이루어지고 한 번만 출력하면서 성능이 향상되게 되는 것이다. 

버퍼라고 하는 독립적인 공간에 문자열 추가 가능
공간 낭비x, 문자열 연산 속도가 빠르다. 

 

그리고 단어를 이어붙일 때 역시 print문에서 '+'를 이용하여 문자를 합쳐주기 보다는 StringBuilder를 이용해서 결과를 출력하는 것이 성능면에서 좋다. 

 

 

 

참고

https://mygumi.tistory.com/83

 

StringBuilder vs System.out.println :: 마이구미

이번 글의 제목은 "StringBuilder vs System.out.println" 이다.글의 목적은 알고리즘 문제들의 시간을 줄이는 것이다.그렇다면 어떻게 줄일 수 있는지 천천히 살펴보자. 대부분 알고 있듯이 System.out.println

mygumi.tistory.com

 

저작자표시 비영리 변경금지 (새창열림)

'💻개발 > JAVA' 카테고리의 다른 글

split(".") 예상결과가 나오지 않는 이유  (0) 2024.02.17
리터럴  (0) 2023.06.23
int와 Integer  (0) 2023.06.22
숫자에 _(언더바)  (0) 2023.06.22
'💻개발/JAVA' 카테고리의 다른 글
  • split(".") 예상결과가 나오지 않는 이유
  • 리터럴
  • int와 Integer
  • 숫자에 _(언더바)
i_zzy
i_zzy
기록 겸 공부 블로그입니다. 문제를 해결해 나아가는 과정을 기록하고 있어요. 잘못된 부분이 있으면 자유롭게 댓글 달아 주세요👍
Izzy's blog기록 겸 공부 블로그입니다. 문제를 해결해 나아가는 과정을 기록하고 있어요. 잘못된 부분이 있으면 자유롭게 댓글 달아 주세요👍
i_zzy
Izzy's blog
i_zzy
전체
오늘
어제
  • 분류 전체보기 (89)
    • 💻개발 (29)
      • 개발지식 (0)
      • 프로그램 설치 (3)
      • Git (3)
      • 오류 (4)
      • JAVA (5)
      • SQL (2)
      • React,Vue (5)
      • AWS (6)
    • ⚙️알고리즘 (30)
      • SQL (3)
      • Java (15)
    • 🎥Back (29)
      • 자바의 정석 (29)
    • 🌤️일상 (0)
      • 초록 스터디 (0)

블로그 메뉴

  • 홈
  • 글쓰기
  • 관리

인기 글

태그

  • 스레드
  • AWS
  • 자바의 정석
  • 프로그래머스
  • Java
  • 알고리즘
  • 백준
  • sql
  • 자바
  • 자바의정석

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
i_zzy
알고리즘) Stringbuilder 왜 사용할까?
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.