Programmers Communication/3期/JAVA/コードテスト能力UPパッケージ-第1週最大数量
8716 ワード
▼githubアドレス:https://github.com/qkralswl689/programmers/tree/main/out/production/exercise
第1週第2題:Programmers最大数
https://programmers.co.kr/learn/courses/30/lessons/42746
私の答え
私は数字をStringタイプに変換して、それから数字を1+2+3,2+1+3,3+1+2に変換します......すべての値を入れるなどして比較し、最大値を出力しようとしたが失敗...!
講師の回答
compareToの使い方とramda関数の使い方を学びました
第1週第2題:Programmers最大数
https://programmers.co.kr/learn/courses/30/lessons/42746
私は数字をStringタイプに変換して、それから数字を1+2+3,2+1+3,3+1+2に変換します......すべての値を入れるなどして比較し、最大値を出力しようとしたが失敗...!
String[] tmp = new String[numbers.length];
for(int i = 0; i < numbers.length; i++ ){
tmp[i] = String.valueOf(numbers[i]);
}
String[] answertmp = new String[numbers.length * numbers.length];
for (int i = 0; i < numbers.length; i++){
for(int j = 1; j <= numbers.length; j++ ){
}
}
compareToの使い方とramda関数の使い方を学びました
// 풀이
// 숫자 -> 문자 -> 내림차순정렬 -> 조합
int[] numbers = {6,10,2};
/* // 문자로 변환
String[] strNum = new String[numbers.length];
for(int i = 0; i < numbers.length; i++){
strNum[i] = "" + numbers[i];
}*/
// 문자로 변환 -> java8부터는 스트림 사용할 수 있다 -> 코드 간결하게 할 수 있따
String answer = IntStream.of(numbers)
.mapToObj(String :: valueOf)
.sorted((s1,s2) -> (s2+s1).compareTo(s1+s2))
.collect(Collectors.joining());
/* // 내림차순 (버블소트) -> 시간 많이 잡아먹음 시간초과 뜸
for(int i = 0; i < strNum.length -1; i++){
for(int j = i + 1; j < strNum.length; j++){
String s1 = strNum[i];
String s2 = strNum[j];
// 비교
if((s1+s2).compareTo(s2+s1)< 0){ // (s1+s2)의 값이 (s2+s1) 값보다 적을때
// 자리를 바꾼다
strNum[i] = strNum[j];
strNum[j] = s1;
}
}
}*/
/* // 내림차순
Arrays.sort(strNum, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return (s2+s1).compareTo(s1+s2);
}
});*/
/* // 내림차순 -> java8부터 사용 가능한 람다함수 사용하여 코드를 간결하게 수정
Arrays.sort(strNum,(s1,s2) ->
(s2+s1).compareTo(s1+s2));
// 조합
String answer = "";
for(String s : strNum){
answer += s;
}*/
/* // 첫번째 값이 0이라면
if(answer.charAt(0) == '0'){
answer = "0" ;
}*/
// 첫번째 값이 0이라면 -> 위보다 권장하는 방법
if(answer.startsWith("0")){
answer = "0" ;
}
System.out.println(answer);
Reference
この問題について(Programmers Communication/3期/JAVA/コードテスト能力UPパッケージ-第1週最大数量), 我々は、より多くの情報をここで見つけました https://velog.io/@alswl689/Programmers-커뮤러닝3기JAVA코딩테스트-실력-UP-패키지-1주차가장큰-수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol