728x90
프로그래머스 Lv.1에 있는 숫자 문자열과 영단어 문제를 풀어보겠다.
"one4seveneight" | 1478 |
"23four5six7" | 234567 |
"2three45sixseven" | 234567 |
영단어에서 대응되는 숫자로 바꾸는 문제이다. replace를 활용하면 문제는 쉽게 풀린다.
처음에는 replace 함수를 생각하지 못하고
문자열의 길이로 처리하거나 하나하나 for문으로 문자가 완성될 때 까지 검사를 해야되나 생각했다...
🟢 함수 replace()
String str = "나는 코딩을 좋아한다. 하지만 나는 코딩을 못 한다.";
str = str.replace("코딩", "파이썬");
System.out.println(str);
//결과
나는 파이썬을 좋아한다. 하지만 나는 파이썬을 못 한다.
사용법 : replace("변경하고자 문자열", "변경할 문자열")
따라서 내가 one, two, three ... 영단어를 숫자로 바꾸고자 한다.
0부터 9까지의 영단어 중 어떤 단어가 나올지 모르기 때문에 0부터 9까지의 모든 영단어가 있는지 체크해주고자 한다.
class Solution {
public int solution(String s) {
int answer=0;
String[] num = {"zero", "one","two","three","four","five","six","seven","eight","nine"};
for(int i = 0; i<10; i++)
{
s = s.replace(num[i], Integer.toString(i));
}
answer = Integer.parseInt(s);
return answer;
}
}
1. String 배열 num에 0부터 9까지의 영단어를 선언해줌.
2. 0부터 9까지의 영단어에 대응된다면 숫자로 바꿔서 replace함수 적용
3. 문자열 s를 정수형으로 바꿔주는 parseInt 함수 사용
728x90
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.1 2016 (1) | 2024.02.27 |
---|---|
[프로그래머스] Lv.1 [1차]비밀지도 (1) | 2024.02.26 |
[프로그래머스] Lv.1 두 개 뽑아서 더하기 (1) | 2024.02.26 |
[프로그래머스] Lv.1 K번째수 (0) | 2024.02.25 |
[프로그래머스] Lv.1 3진법 뒤집기 (1) | 2024.02.25 |