본문 바로가기

Coding Test/PS

[백준/Java] 2739번: 구구단 (브론즈5)

🟤 백준 2739번: 구구단 (브론즈5)

 

문제 풀이

1차 풀이

import java.util.*;
import java.lang.*;
import java.io.*;

/*
  - 문제 풀이: 250325(화)
  - 2739번: 구구단 (브론즈5), https://www.acmicpc.net/problem/2739
  - 실행 시간: 104ms
*/
public class Main
{
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		int n = Integer.parseInt(br.readLine());
		
		for (int i = 1; i<=9; i++) {
		    int r = n * i;
		    sb.append(n).append(" * ").append(i).append(" = ").append(r);
		    System.out.println(sb);
		    
		    // StringBuilder 초기화 (StringBuilder 재생성하지 않고 초기화)
		    sb.setLength(0);
		}
	}
}

 

StringBuilder 초기화

`sb.setLength(0);`

단지 길이를 0으로 만들면 되기 때문에 비교적 시간이 적게 듦!

 

 

다른 방법들...

  1. `new StringBuilder()` 또 사용해서 초기화
    객체를 또 생성하므로 그만큼 시간 소모
  2. `sb.delete()`
    지운다는 작업 때문에 시간 소모

참고 자료

https://zero-iron.tistory.com/68

 

StringBuilder를 초기화하는 가장 빠른 방법

알고리즘 문제를 풀다 보면 요구되는 형식에 맞게 String을 생성해야 할 때가 있는데 StringBuilder를 사용해서 다른 문자가 요구될때 어떻게 초기화하면 좋을지 고민하곤 한다 결론적으로는 StringBuil

zero-iron.tistory.com