문제
풀이
(1) 문제 분석하기
- 포함될 수 있는 영단어(zero ~ nine)를 담은 String 배열 생성
- 배열 길이만큼 for문으로 돌면서 입력 받은 문자열에 해당 영단어가 있는지 확인 → contains()
- 있다면, 해당 영단어를 i로 대체 → replace()
String.contains() 특정 문자열 포함 확인
대상 문자열에 특정 문자열이 포함되어 있는 확인하고, true or false를 반환한다.
대/소문자 구분하여 사용이 가능하다.
String.replace(찾을 문자열, 바꿀 문자열) 문자열 대체
대상 문자열을 원하는 문자 값으로 변환한다. 차례대로 찾을 문자열과 바꿀 문자열을 입력한다.
replace() vs replaceAll() 둘의 차이점은? replaceAll은 정규식 사용이 가능하다.
(2) 슈도코드 작성하기
zero ~ nine을 담은 String 배열 생성
for(string 배열 길이만큼) {
if(입력 받은 문자열에 배열 요소가 포함된다면) {
해당 문자열 i로 대체
}
}
(3) 코드 구현하기
package algorithm.test22;
public class Solution {
public int solution(String s) {
// zero ~ nine을 담음 String 배열을 생성
// for문을 돌면서 배열에 있는 문자열이 입력 받은 문자열에 있는지 확인 contains()
// 있다면, replace()를 이용하여 해당 문자열을 i로 대체
String[] numberToString = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for (int i = 0; i < numberToString.length; i++) {
if (s.contains(numberToString[i])) {
s = s.replace(numberToString[i], String.valueOf(i));
}
}
return Integer.parseInt(s);
}
public static void main(String[] args) {
String s = "one4seveneight";
Solution sol = new Solution();
System.out.println(sol.solution(s));
}
}
'📊 Algorithm&SQL' 카테고리의 다른 글
[Java/프로그래머스] 약수의 개수와 덧셈 (0) | 2022.11.26 |
---|---|
[Java/프로그래머스] 숫자의 표현 (1) | 2022.11.22 |
[Java/프로그래머스] 문자열 내림차순으로 배치하기 (0) | 2022.11.22 |
[Java/프로그래머스] 로또의 최고 순위와 최저 순위 (2) | 2022.11.21 |
[Java/프로그래머스] 두 개 뽑아서 더하기 (0) | 2022.11.19 |