https://programmers.co.kr/learn/courses/30/lessons/81301
package Level1;
import java.util.*;
public class 숫자문자열과영단어 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(solution("one4seveneight"));
}
public static int solution(String s) {
int answer=0;
StringBuilder sb=new StringBuilder();
String ans_str="";
String[] words= {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
ArrayList<String> arr=new ArrayList<>();
for(String word:words) {
arr.add(word);
}
for(int i=0;i<s.length();i++) {
char c=s.charAt(i);
//숫자 자체인 경우 (0~9)
if(c>='0'&&c<='9') {
ans_str+=c;
continue;
}
//알파벳인 경우
sb.append(c);
String str=sb.toString();
if(arr.contains(str)) { //준비해둔 알파벳숫자의 배열에 속하는 경우
int index=arr.indexOf(str); //인덱스값과 알파벳숫자의 숫자값이 같으므로 indexOf을 사용
ans_str+=Integer.toString(index);
sb=new StringBuilder(); //댜음 글자를 위한 StringBuilder 초기화
}
}
answer=Integer.parseInt(ans_str);
return answer;
}
//다른사람 풀이
//replaceAll을 쓰면 한번에 바꿀 수 있다.
}
지저분한 거 같기도 하고... 그래도 나름 잘 풀었다고 생각했었다...
했었다...
다른 사람 풀이도 살펴보자
class Solution {
public static int solution(String s) {
String[] arr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for (int i = 0; i < arr.length; i++) {
if (s.contains(arr[i])) {
s = s.replaceAll(arr[i], Integer.toString(i));
}
}
return Integer.parseInt(s);
}
}
그렇다...
'알고리즘연습 > Programmers' 카테고리의 다른 글
[프로그래머스] 올바른 괄호 java 자바 (0) | 2021.06.26 |
---|---|
[프로그래머스] 행렬테두리 회전하기 java 자바 (0) | 2021.06.26 |
[프로그래머스] 기능개발 java 자바 (0) | 2021.05.21 |
[프로그래머스] 예산 java 자바 (0) | 2021.05.20 |
[프로그래머스] 폰켓몬 java 자바 (0) | 2021.05.19 |