Coding Test

배열과 StringBuilder를 떠올리자...

jhyngu 2025. 3. 26. 13:20

왜 나는 배열이나 StringBuilder를 떠올리지 못했을까?

오늘 백준 2720번 문제를 풀다가 내가 스스로에게 던졌던 질문이 있다.

"왜 나는 `int quarter = 25; int dime = 10;` 이렇게 일일이 선언했을까?"  
"왜 나는 `StringBuilder`를 떠올리지 못했을까?"

 

그렇게 문제를 풀고 난 뒤 정답 코드를 보니, 더 깔끔하고 효율적인 코드가 있었다.

int[] coins = {25, 10, 5, 1};
StringBuilder sb = new StringBuilder();

왜 나는 이런 생각을 못했을까..?

생각해보니 이유는 간단했다.

 

아직도 기본 문법을 "그때그때" 꺼내 쓰고 있었고,
"패턴화"된 사고가 없었다.


즉, 비슷한 상황에서 자동적으로 떠올리는 경험이 부족했던 것 같다.


그래서 나만의 규칙을 만들기로 했다.

1. 똑같은 값 여러 개를 다룬다? → 배열이나 리스트로 묶자!

// Before
int a = 25, b = 10, c = 5, d = 1;

// After
int[] coins = {25, 10, 5, 1};

 

2. 출력이 반복된다? → StringBuilder 먼저 생각하자!

// Before
System.out.println(...);
System.out.println(...);

// After
StringBuilder sb = new StringBuilder();
sb.append(...).append(...);
System.out.println(sb);

 


작은 습관이 큰 차이를 만든다고 생각한다.

이건 단순한 코드 스타일이 아니라, 사고방식의 문제다.
"더 깔끔하게 할 수 있지 않을까?"를 한 번이라도 의식적으로 떠올리면,
그게 하나둘 패턴이 되고, 나중엔 자동으로 떠오르게 된다.


결론

못 했던 게 아니라, 익숙하지 않았던 것뿐이다.

다음부터는 반복되는 것, 여러 개 나열되는 것, 출력이 많은 것에 대해:

 

  • “배열로 묶을 수 있을까?”
  • “StringBuilder로 모아 출력할 수 있을까?”

이 질문들을 습관처럼 던져보자.