728x90
테케 11번 반례
[0, 0, 0] => "000" (x)
[0, 0, 0] => "0" (o)
clearZero메서드를 하나 만들어줌
만들어줬는데 clearZero 필요 없는 더좋은 코드 있어서 그거씀
Line:20의 의미는
[0] , [0, 0] , [0, ... , 0] 등의 오직 원소가 0뿐이고 n개로 이루어진 String의 charAt(0)은
반드시 0인 특징을 활용하여 짜준거
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
import java.util.*;
class Solution {
public String solution(int[] numbers) {
List<numberInfo> list = new ArrayList<>();
for(int i=0; i<numbers.length; i++){
String number = String.valueOf(numbers[i]);
list.add(new numberInfo(number));
}
Collections.sort(list);
// list.forEach(System.out::println);
StringBuilder sb = new StringBuilder();
for(int i=0; i<list.size(); i++){
sb.append(list.get(i).number);
}
String answer = sb.toString();
// answer = clearZero(answer);
return (answer.charAt(0)=='0')? "0": answer;
}
// private String clearZero(String str){
// for(int i=0; i<str.length(); i++){
// if(str.charAt(i)!='0'){
// return str.substring(i, str.length());
// }
// }
// return "0";
// }
public class numberInfo implements Comparable<numberInfo>{
String number;
String numForComparison;
public numberInfo(String number){
this.number = number;
StringBuilder sb = new StringBuilder();
int j=0;
for(int i=0; i<4; i++){
sb.append(number.charAt(j++%number.length()));
}
this.numForComparison = sb.toString();
}
@Override
public int compareTo(numberInfo ni){
return ni.numForComparison.compareTo(numForComparison);
}
@Override
public String toString(){
return number+" "+numForComparison;
}
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
import java.util.*;
class Solution {
public String solution(int[] numbers) {
List<numberInfo> list = new ArrayList<>();
for(int i=0; i<numbers.length; i++){
String number = String.valueOf(numbers[i]);
list.add(new numberInfo(number));
}
Collections.sort(list);
// list.forEach(System.out::println);
StringBuilder sb = new StringBuilder();
for(int i=0; i<list.size(); i++){
sb.append(list.get(i).number);
}
String answer = sb.toString();
answer = clearZero(answer);
return answer;
}
private String clearZero(String str){
for(int i=0; i<str.length(); i++){
if(str.charAt(i)!='0'){
return str.substring(i, str.length());
}
}
return "0";
}
public class numberInfo implements Comparable<numberInfo>{
String number;
String numForComparison;
public numberInfo(String number){
this.number = number;
StringBuilder sb = new StringBuilder();
int j=0;
for(int i=0; i<4; i++){
sb.append(number.charAt(j++%number.length()));
}
this.numForComparison = sb.toString();
}
@Override
public int compareTo(numberInfo ni){
return ni.numForComparison.compareTo(numForComparison);
}
@Override
public String toString(){
return number+" "+numForComparison;
}
}
}
|
cs |
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][JAVA] 조이스틱 (완전탐색/ 그리디...?) (0) | 2022.03.25 |
---|---|
[프로그래머스][JAVA] 소수 찾기 (완전 탐색, 소수) (0) | 2022.03.25 |
1 ★★★ [프로그래머스][JAVA] 전화번호 목록 (문자열) (0) | 2022.03.24 |
1 ★★★ [프로그래머스][JAVA] 빛의 경로 사이클 (배열, 구현..?, 재귀를 while문으로) (0) | 2022.03.24 |
[프로그래머스][JAVA] 튜플 (문자열, Set) (0) | 2022.03.24 |