프로그래머스 파일명 정렬 오답노트

ㅎㅎ·2023년 1월 8일
0

알게된 것

1) 문자열을 대-소문자로 변환하는 메소드 toLowerCase(), toUpperCase()는 본래 객체를 변환한 값으로 바꾸지 않고 단순히 변환 결과를 return하는 함수이다. 이걸 모르고 변환되지 않은 값을 문자열 비교하여 로직에 에러가 발생했다.

2) Comparator<Object>을 구현한 클래스를 만들고 이 클래스에 public int compare(Object o1, Object o2)를 오버라이딩하여 정렬 기준을 커스터마이징 할 수 있다. 이렇게 만든 클래스를 Arrays.sort(정렬대상, 정렬기준) 함수의 정렬 기준에 인자로 넣어주면 해당 기준을 가지고 정렬 대상이 정렬된다.

3) 클래스에 정렬 기준을 구현하면서 두 객체의 Head와 Number, Tail 부분을 각각 찾아내어 비교해주어야 해서 구현이 매우 복잡해졌다. 그리고 내부적으로 정렬이 어떻게 돌아가는지 파악이 잘 안 되고 디버깅도 어려웠다. 다른 스터디원이 먼저 head, number, tail을 분리하는 작업을 한 후 이것들을 멤버로 갖는 클래스를 만들어 구현했는데 훨씬 깔끔했다.

나는 정렬 기준 클래스를 만들었기에 각각의 String에 대해서 분리작업을 따로 하드코딩 해야했기에 너무 복잡하게 구현되었다. 접근을 할 때 어떤 작업을 먼저 할지 정하는 것이 매우 중요한 거 같다.

profile
Hello World

0개의 댓글

관련 채용 정보