본문 바로가기
CodingTest/Programmers

Lv.0 문자열 정렬하기(1)**

by yoondoo 2022. 11. 23.
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

댓글