왜 나는 배열이나 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로 모아 출력할 수 있을까?”
이 질문들을 습관처럼 던져보자.
'Coding Test' 카테고리의 다른 글
문자 처리 (0) | 2025.04.05 |
---|---|
Collections (0) | 2025.02.07 |
ArrayList (0) | 2025.02.07 |
HashSet이란?(+ TreeSet, LinkedHashSet) (0) | 2025.02.07 |
StringBuilder란? (1) | 2025.02.04 |