https://programmers.co.kr/learn/courses/30/lessons/81301?language=java
풀이
charAt() 함수는 문자열에서 특정 인덱스에 위치하는 유니코드 단일문자를 반환한다.
s의 길이만큼 for문을 돌려서 s.charAt(i)가 숫자면 그대로 반환하고, 영어면 저장해뒀다가 숫자 영단어와 동일한게 있다면 숫자로 바꿔준다.
class Solution {
public int solution(String s) {
String[] number = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
String str="", answer="";
// 숫자면 반환, 영어면 해당위치 숫자로 바꾸기
for(int i=0;i<s.length();i++){
if(!Character.isDigit(s.charAt(i))){
str+=s.charAt(i);
if(str!=""){
for(int j=0;j<number.length;j++){
if(str.equals(number[j])){
answer+=j;
str="";
}
}
}
}else
answer += s.charAt(i);
}
return Integer.parseInt(answer);
}
}
다른사람풀이
replaceAll()로 각 숫자에 대응되는 영단어가 있다면 숫자로 바꿔준다.
String[] strArr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for(int i = 0; i < strArr.length; i++) {
s = s.replaceAll(strArr[i], Integer.toString(i));
}
return Integer.parseInt(s);
'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 Lv.2 > 기능개발 (0) | 2022.02.28 |
---|---|
[Java] 프로그래머스 Lv.2 > 다리를 지나는 트럭 (0) | 2022.02.28 |
[Java] 프로그래머스 : 로또의 최고 순위와 최저 순위 (0) | 2022.02.21 |
[Java] 프로그래머스 : 실패율 (0) | 2022.02.20 |
[Java] 프로그래머스 : 정수 내림차순으로 배치하기 (0) | 2022.02.19 |