TIL

2023년 11월 09일

정유감 2023. 11. 9. 22:06
728x90
반응형
피곤쓰~

알고리즘을 풀다가 잠깐 턱에 걸려 넘어졌다.

가장 큰 수

public String solution(int[] numbers) {

        String[] strArray = new String[numbers.length];

        for (int i = 0; i < numbers.length; i++)
            strArray[i] = String.valueOf(numbers[i]);

        Arrays.sort(strArray, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return (o2 + o1).compareTo(o1 + o2);
            }
        });

        if (strArray[0].equals("0"))
            return "0";

        StringBuilder answer = new StringBuilder();
        for (String s : strArray) {
            answer.append(s);
        }

        return answer.toString();
    }

첫 시도에서

        if (strArray[0] == "0")
            return "0";

이걸 넣고 틀렸다. 케이스 하나만 틀리더라. 0 하나 들어오는 배열.
왜 이럴까 하고 팀원들 한테 물어보니

strArray[0] 을 "0" 과 비교하게 되면 주소값에 접근해서 같은지 비교한다.

흠... 그으래?

JVM과 문자열과 배열은 둘 다 객체

생각하다보니 둘 다 객체라는걸 기억해냈다.
애초에 둘을 비교할 수 없었다는 것.

equals를 사용하기로 했다.

728x90
반응형