728x90
코딩테스트 연습 - 숫자 문자열과 영단어 | 프로그래머스 스쿨 (programmers.co.kr)
class Solution {
public static int solution(String s) {
int answer = 0;
if(s.contains("zero")){
s = s.replace("zero","0");
}if(s.contains("one")){
s = s.replace("one","1");
}if(s.contains("two")){
s = s.replace("two","2");
}if(s.contains("three")){
s = s.replace("three","3");
}if(s.contains("four")){
s = s.replace("four","4");
}if(s.contains("five")){
s = s.replace("five","5");
}if(s.contains("six")){
s = s.replace("six","6");
}if(s.contains("seven")){
s = s.replace("seven","7");
}if(s.contains("eight")){
s = s.replace("eight","8");
}if(s.contains("nine")){
s = s.replace("nine","9");
}
return Integer.parseInt(s);
}
}
딱히 방법이 생각나지 않아서 그냥 if문으로 노가다 했는데 정말 좋은 코드 발견 .. !
public int solution(String s) {
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);
}
감탄이 나온다
replaceAll은 한 번도 안 써봤는데
replaceAll(정규식 또는 기존문자, 대체문자) 형태로 사용.
문자열에서 특정 문자를 다른자로 전체 치환하는 메소드
너무 효율적이다 .....
ex)
str = str.replaceAll("[0-9]", "A");
// [0-9] 는 정규식으로 숫자만 치환할 것을 의미
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
(프로그래머스/자바) 힌트문제2 04. 문자열 - 프로그래머스 : 문자열안에 문자열 (0) | 2023.07.25 |
---|---|
(프로그래머스/자바) 힌트문제2 02. 배열 - 프로그래머스 : 배열 회전시키기 (0) | 2023.07.25 |
(프로그래머스/자바) 힌트문제2 01. 해시테이블 - 프로그래머스 : 한 번만 등장한 문자 (0) | 2023.07.25 |
(프로그래머스/자바) 힌트문제1 01. 수학 - 프로그래머스 : 짝수는 싫어요 (0) | 2023.07.18 |