✔ 숫자 문자열과 영단어
문제 분석하기
배열에 영단어들을 저장해둔 후, 문자열 안에 영단어가 있을 경우 그 영단어의 인덱스로 변경
손으로 풀어보기
- 배열에 영단어들 저장
- 영단어들을 돌면서 문자열 안에 해당 영단어가 있는지 확인
- 영단어가 있을 경우, 해당 영단어의 인덱스로 변경
- 문자열을 정수로 변환하여 반환
슈도코드 작성하기
s(숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열)
numbers(영단어 배열)
for(i -> numbers의 길이만큼) {
if(s가 numbers[i]를 가지고 있다면) {
numbers[i]를 i로 변경
}
}
s를 정수로 변환하여 반환
코드 구현하기
/**
* 81301) 숫자_문자열과_영단어
*/
public class L050_81301 {
// s(숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열)
public int solution(String s) {
// numbers(영단어 배열)
String[] numbers = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
for (int i = 0; i < numbers.length; i++) {
// s가 numbers[i]를 가지고 있다면
if (s.contains(numbers[i])) {
// numbers[i]를 i로 변경
s = s.replaceAll(numbers[i], Integer.toString(i));
}
}
// s를 정수로 변환하여 반환
return Integer.parseInt(s);
}
// 테스트 케이스
public static void main(String[] args) {
L050_81301 solution = new L050_81301();
String s = "one4seveneight";
int result = solution.solution(s);
System.out.println(result);
}
}
'Coding Test > Java 알고리즘 실전' 카테고리의 다른 글
[77484] 로또의 최고 순위와 최저 순위 (0) | 2023.12.19 |
---|---|
[77884] 약수의 개수와 덧셈 (0) | 2023.12.19 |
[82612] 부족한 금액 계산하기 (0) | 2023.12.18 |
[86051] 없는 숫자 더하기 (0) | 2023.12.18 |
[87389] 나머지가 1이 되는 수 찾기 (0) | 2023.12.17 |