728x90
import java.util.Arrays;
class Solution {
public int[] solution(String my_string) {
String []removeA = my_string.replaceAll("[^0-9]", "").split("");
int []answer = new int[removeA.length];
for(int i=0; i<answer.length; i++) {
answer[i] = Integer.parseInt(removeA[i]);
}
Arrays.sort(answer);
return answer;
}
}
어제 배운 replaceAll을 이용해서 숫자가 아닌 문자들을 다 지우고
새로운 문자열 배열에 넣어준 뒤
같은 길이 만큼의 int배열에 for문으로 차례로 넣은 뒤
sort()메서드를 이용해서 정렬하고 return 해줬다.
다른 풀이도 좋아 보여서 두가지 방식을 추가로 해봤다.
//Character.digit() 사용해보기
List<String> list = new ArrayList<>();
for(int i=0; i<my_string.length(); i++) {
char charData = my_string.charAt(i); //문자열에서 문자 하나씩 가져와
if(Character.isDigit(charData)) { //isDigit은 가져온 char가 숫자이면 true 아니면 false리턴
String strData = String.valueOf(charData); //숫자가 맞으면 문자열 list에 추가하기 위해사
//String.valueOf()메서드를 이용해 문자열로 변환해주고
list.add(strData); //문자열 리스트에 추가한다
}
}
int []ans01 = list.stream().sorted().mapToInt(Integer::parseInt).toArray();
for(int i:ans01) {
System.out.print(i+"");
}
// stream을 이용해 한줄에 끝내기
int []ans02 = Arrays.stream(my_string.replaceAll("[A-Z|a-z]", "").split("")).sorted().mapToInt(Integer::parseInt).toArray();
for(int i:ans02) {
System.out.print(i+"");
}반응형
'CodingTest > Programmers' 카테고리의 다른 글
| [프로그래머스] Lv.0 직각삼각형 출력하기* (0) | 2022.11.28 |
|---|---|
| [프로그래머스] Lv.0 개미군단 (0) | 2022.11.28 |
| Lv.0 숨어있는 숫자의 덧셈 (0) | 2022.11.23 |
| Lv.0 중앙값 구하기 (0) | 2022.11.23 |
| Lv.0 모음제거 ** (0) | 2022.11.23 |
댓글