떼닝로그

[Java] Softeer 나무 출력 - (출력 문자열 포함, StringBuilder) 본문

Algorithms/Softeer

[Java] Softeer 나무 출력 - (출력 문자열 포함, StringBuilder)

떼닝 2024. 10. 24. 17:49

[Java] Softeer 나무 출력 - (출력 문자열 포함)

문제 링크 : https://softeer.ai/practice/9655

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

 

softeer.ai

 

기록의 이유...

출력 문자열을 긁어서 붙이려고 했는데 안되더라...

이번에도 그냥 개발자모드로 element 다 가져와서 메모장에서 수정해서 붙여넣었다 ㅋㅋㅋㅋㅋㅎㅎ

 

대신 이번에는 StringBuilder를 사용해보려고 했다.

찾아보니 약간 list처럼 append하는 형식처럼 보였다.

근데 이 결과값이 string type은 아니기 때문에 .toString()은 필요하다던...

 

그럼 왜 StringBuilder를 사용해야 하는가?

 

[Python] Softeer Lv2 - [한양대 HCPC 2023] X marks the Spot (Immutable String)

[Python] Softeer Lv2 - [한양대 HCPC 2023] X marks the Spot문제 링크 : https://softeer.ai/practice/7703 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai  기록의 이유...아무리 생각해도 뭔가 걸릴만한 게 없었

pseeej.tistory.com

죽지 않고 또 찾아온 나의 Immutable String 글. Python이긴 하지만, 전체적인 특성은 동일/비슷할 것이기 때문에 참고하면 좋을듯

 

그냥 일반적인 + 연산으로도 당연히 string 값에 변화를 줄 수는 있지만,

immutable한 string type의 특성에 따라 + 연산으로 진행했을 경우 새로운 string을 만들어서 엎어치기 하는 격이다.

메모리나 시간이 오래 걸리기 때문에, StringBuilder를 사용하는 것이 훨씬 효과적이다.

 

아무튼 새로운 기술을 하나 또 얻었다~

 

 

출력 문자열

 

좀 밀려져보이는 이유는 여기서의 공백과 사이트 자체에서의 공백 크기(?)가 다르게 보여서 그런 것 같다

하지만 실제로는 동일한 문자열이다.

 

           *********           
      *****         ****       
    **                  **     
   *                      *    
 **                        **  
*                            * 
*                            * 
**                          ** 
 **  *    ****  ****    *  **  
   ** ***** ****** ***** **    
             ****              
             ****              
             ****              
             ****              
            ******             
           ********

 

 

작성 코드

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

public class Main {

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("           *********           \n");
        sb.append("      *****         ****       \n");
        sb.append("    **                  **     \n");
        sb.append("   *                      *    \n");
        sb.append(" **                        **  \n");
        sb.append("*                            * \n");
        sb.append("*                            * \n");
        sb.append("**                          ** \n");
        sb.append(" **  *    ****  ****    *  **  \n");
        sb.append("   ** ***** ****** ***** **    \n");
        sb.append("             ****              \n");
        sb.append("             ****              \n");
        sb.append("             ****              \n");
        sb.append("             ****              \n");
        sb.append("            ******             \n");
        sb.append("           ********");

        System.out.print(sb);
    }
}

 

사실 자바 어떻게 해야하는지 몰라서 입출력부터 다시 좀 검색해서 보긴 했다 ㅋㅎ...

근데 얜 입력이 없어서 그냥 문자열 하나에 갖다붙였다 ㅎㅎ

아무튼 해냈잖아~~^^

Comments