본문 바로가기
프로그래밍 언어/java

24.04.04 #25314 stringBuilder

by 피스타0204 2024. 4. 4.

# 25314

바로 print하기▼

System.out. println(출력할 것);은 개행 문자가 마지막에 추가되어 출력되고 System.out. print(출력할 것);은 추가되지 않고 출력됩니다.

import java.util.Scanner;
public class Main
{
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int N =in.nextInt();
		int cnt=N/4+1;
		if(N%4==0)cnt=N/4;
	    for(int i=0; i<cnt;i++){
	        System.out.print("long ");
	    }
		System.out.print("int");
	}
}

 

stringBuilder ▼

import java.util.Scanner;
import java.io.BufferedReader;
public class Main
{
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int N =in.nextInt();
		
		StringBuilder sb = new StringBuilder();
		int cnt=N/4+1;
		if(N%4==0)cnt=N/4;
	    for(int i=0; i<cnt;i++){
	        sb.append("long ");
	    }
	    sb.append("int");
		System.out.print(sb);
	}
}

 

stringBuilder 사용하기

import java.io.BufferedReader;
StringBuilder sb = new StringBuilder();
sb.append("long ");

 

자바에서는 많은 수의 연산을 할 경우 문자열 +연산이 stringBuilder보다 느리기 때문에 stringBuilder가 +연산보다 선호됩니다. 왜냐하면 +연산의 경우 a+b를 할 때마다 새로운 문자열이 생겨납니다.

예를 들어 c라는 변수에 새로운 문자열을 더하면 c1, c2,c3,...가 생겨납니다.

 

string builder를 사용하면 미리 일정크기의 배열을 잡아두고 붙여나가는 방식이기 때문에 이러한 단점을 보완할 수 있습니다. string +연산은 매번 변수가 새로 만들어져 n개만큼 변수가 만들어지고 stringBuilder는 하나의 변수만 만들어진다고 생각하면 됩니다.

 

참고자료: https://nahwasa.com/entry/%EC%9E%90%EB%B0%94%EC%97%90%EC%84%9C-String%EC%97%90-%EB%8C%80%ED%95%9C-%EC%97%B0%EC%82%B0%EC%9D%84-%EC%93%B0%EC%A7%80-%EB%A7%88%EC%84%B8%EC%9A%94-StringBuilder-StringBuffer 

 

'프로그래밍 언어 > java' 카테고리의 다른 글

백준#2839  (0) 2024.05.11
24.03.26 java 백준 문제 풀이 -입출력과 사칙연산  (0) 2024.03.26