반응형
문자열 정렬하기 (1)
문제 설명
문자열 my_string이 매개변수로 주어질 때,
my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.
입출력 예 #1
- "hi12392"에 있는 숫자 1, 2, 3, 9, 2를 오름차순 정렬한 [1, 2, 2, 3, 9]를 return 합니다.
입출력 예 #2
- "p2o4i8gj2"에 있는 숫자 2, 4, 8, 2를 오름차순 정렬한 [2, 2, 4, 8]을 return 합니다.
입출력 예 #3
- "abcde0"에 있는 숫자 0을 오름차순 정렬한 [0]을 return 합니다.
java code
import java.util.Arrays;
class Solution {
public int[] solution(String my_string) {
String instr = my_string.replaceAll("[^0-9]","");
int[] answer = new int[instr.length()];
for (int i = 0; i < answer.length; i++) {
answer[i] = Character.getNumericValue(instr.charAt(i));
}
Arrays.sort(answer);
return answer;
}
}
1. String instr = my_string.replaceAll("[^0-9]","");
- my_string에서 숫자가 아닌 문자를 모두 제거하여 instr 문자열에 저장합니다. 여기서 replaceAll 메서드는 문자열에서 정규표현식 패턴에 해당하는 문자열을 다른 문자열로 대체하는 메서드입니다. [0-9]는 0부터 9까지의 숫자를 나타내는 정규표현식 패턴이고, ^는 부정(negation)을 의미하므로 [^0-9]는 숫자가 아닌 문자를 나타냅니다.
2. int[] answer = new int[instr.length()];
- instr 문자열의 길이만큼 정수 배열 answer를 생성합니다.
3. answer[i] = Character.getNumericValue(instr.charAt(i));
- instr 문자열에서 각 문자를 하나씩 읽어서 해당 문자가 나타내는 숫자를 answer 배열에 저장합니다. charAt 메서드는 문자열에서 해당 위치의 문자를 반환하며, getNumericValue 메서드는 해당 문자가 나타내는 숫자를 반환합니다.
4. Arrays.sort(answer);
- answer 배열을 오름차순으로 정렬합니다.
python code
import re
def solution(my_string):
s = re.sub("[^0-9]","",my_string)
answer = []
for i in s:
answer.append(int(i))
answer.sort()
return answer
자바는 배열의 길이를 맞춰줘야 하고 타입을 신경써줘야한다.
반응형
'algorithm' 카테고리의 다른 글
[프로그래머스]세균 증식 - java, python (0) | 2023.03.03 |
---|---|
[프로그래머스]대문자와 소문자 - java, python (0) | 2023.03.03 |
[프로그래머스]중복된 숫자 개수 - java, python (0) | 2023.03.03 |
[프로그래머스]암호 해독 - java, python (0) | 2023.03.01 |
[프로그래머스]문자열을 정수로 바꾸기 - java, python (0) | 2023.02.28 |
댓글