728x90
반응형

1. 오늘의 학습 키워드
정렬
JAVA
2. 오늘의 학습 문제
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42746
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
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 |