https://programmers.co.kr/learn/courses/30/lessons/42746?language=java
코딩테스트 연습 - 가장 큰 수
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰
programmers.co.kr
문제요약
주어진 정수로 만들 수 있는 가장 큰 수를 구하기
풀이
1. 정수배열을 문자열 배열로 변환
2. 큰수가 앞으로 오도록 정렬
소스코드
https://github.com/999inim/Algorithm/blob/main/programmers/PS37.java
API정리 및 팁
1. 정수를 문자열로 변경하기
String.valueOf(정수);
2. Comparator
compare 메서드를 override
3. compareTo
두 수 또는 문자열을 각각 비교하여 양수/0/음수 값을 반환
숫자 비교는 Wrapper 클래스만 가능
(primitive 타입으로 비교하려면 Integer.compare)
문자열 비교는 아스키코드의 차에 의한 비교
느낀점
- 접근 방법을 통한 구현에 복잡도가 너무 높거나 경우의수가 많아진다면 한번쯤 의심해보기
(처음에 정수값으로 완전탐색을 하려고 시도했었음)
- 빠른 접근방법(태세) 전환
반응형
최근댓글