728x90
반응형
1. 오늘의 학습 키워드
정렬
JAVA
2. 오늘의 학습 문제
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42746
코드
import java.util.*;
class Solution {
public String solution(int[] numbers) {
String answer = "";
String[] strNumbers = new String[numbers.length];
for (int i = 0; i < numbers.length; i++) {
strNumbers[i] = String.valueOf(numbers[i]);
}
// 문자열을 비교하여 더 큰 순서로 정렬
Arrays.sort(strNumbers, new Comparator<String>() {
public int compare(String o1, String o2) {
// 두 문자열을 합쳐서 비교
String s1 = o1 + o2;
String s2 = o2 + o1;
// 내림차순으로 정렬
return s2.compareTo(s1);
}
});
// 정렬된 문자열을 이어붙여서 결과 생성
StringBuilder sb = new StringBuilder();
for (String str : strNumbers) {
sb.append(str);
}
// 배열이 모두 0으로 이루어진 경우 예외 처리
if (sb.charAt(0) == '0') {
return "0";
}
return sb.toString();
}
}
number에 있는 int 요소를 String.valueOf() 메서드를 통해 문자열 변환하여 문자열 배열 strNumber에 저장하였다.
Arrays.sort()메서드로 strNumber 배열을 정렬하는데, Comparator 인터페이스를 구현한 익명 클래스를 사용해 비교 기준을 정의하였다. 두 문자열을 합치고 비교하여 큰 것을 리턴한다.
이후 문자열을 이어붙여 결과를 생성하고, 리턴한다.
배열이 모두 0으로 이루어진 경우는 예외 처리한다.
3. 오늘의 회고
- 인터페이스를 사용해봤는데, 좀 더 연습해봐야겠다.
728x90
반응형
'공부 > 2024 항해99코딩클럽' 카테고리의 다른 글
99클럽 코테 스터디 9일차 TIL + 완전탐색/프로그래머스 [카펫]/JAVA풀이 (0) | 2024.05.28 |
---|---|
99클럽 코테 스터디 8일차 TIL + 정렬/[프로그래머스] H-Index/JAVA 힙풀이 (0) | 2024.05.27 |
99클럽 코테 스터디 6일차 TIL + 힙/리트코드 [2336. Smallest Number in Infinite Set] JAVA 풀이 (0) | 2024.05.25 |
99클럽 코테 스터디 5일차 TIL + 힙/ 프로그래머스 [더 맵게]/JAVA (0) | 2024.05.24 |
99클럽 코테 스터디 4일차 TIL + 스택/프로그래머스 [올바른 괄호] (0) | 2024.05.23 |