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)

문자열 비교는 아스키코드의 차에 의한 비교

 


느낀점

- 접근 방법을 통한 구현에 복잡도가 너무 높거나 경우의수가 많아진다면 한번쯤 의심해보기

(처음에 정수값으로 완전탐색을 하려고 시도했었음)

- 빠른 접근방법(태세) 전환

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기