숫자 문자열과 영단어 - 프로그래머스

Yuno·2024년 6월 25일

Java)코테 연습

목록 보기
2/18

https://school.programmers.co.kr/learn/courses/30/lessons/81301



class Solution {
    public int solution(String s) {
        String[] words = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};

        for (int i = 0; i < words.length; i++) {
            s= s.replaceAll(words[i], String.valueOf(i));
        }
        return Integer.parseInt(s);
    }

    

    public static void main(String[] args) {
        Solution sol = new Solution();
        System.out.println(sol.solution("one4seveneight"));
        System.out.println(sol.solution("23four5six7"));
        System.out.println(sol.solution("2three45sixseven"));
        System.out.println(sol.solution("123"));
    }
}

문제풀이

접근방식

  1. 사전준비 : 각 숫자에 대응되는 영단어를 미리 준비해둠
  2. 문자열 치환 : 주어진 문자열에서 영단어를 숫자로 변환
  3. 숫자 변환 : 최종적으로 변환된 문자열을 정수로 변환하여 반환

세부 구현 단계

  1. 영단어와 숫자 매핑
    -각 숫자와 그에 대응하는 영단어를 매핑하는 배열 생성
    ex) 0 은 zero, 1은 one과 같이 대응
  2. 문자열 치환
    -주어진 문자열에서 영단어를 숫자로 치환하기 위해 replaceAll 메서드를 사용. 이 메서드는 문자열 내의 모든 일치하는 부분을 치환
  3. 문자열을 숫자로 변환
    -치환된 문자열을 정수로 변환하기 위해 Integer.parseInt 메서드 사용

단계별 구현

  1. 영단어 배열 생성
String[] words = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};

각 숫자와 영단어를 매핑하는 배열 생성

  1. 문자열 치환
for (int i = 0; i < words.length; i++) {
	s = s.replaceAll(words[i], String.valueOf(i));
}

반복문을 사용하여 문자열 s 에서 각 영단어를 대응되는 숫자로 치환. replaceAll 메서드는 문자열에서 일치하는 모든 부분을 치환

  1. 숫자로 치환 및 반환
return Integer.parseInt(s);

최종적으로 변환된 문자열을 정수로 변환하여 반환

profile
Hello World

0개의 댓글