[프로그래머스] Lv.0 영어가 싫어.java

김엄지·2024년 4월 30일

알고리즘

목록 보기
79/90

문제 설명

영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.

제한사항

  • numbers는 소문자로만 구성되어 있습니다.
  • numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", - "eight", "nine" 들이 공백 없이 조합되어 있습니다.
  • 1 ≤ numbers의 길이 ≤ 50
  • "zero"는 numbers의 맨 앞에 올 수 없습니다.

입출력의 예

문제 풀이 1

class Solution {
    public long solution(String numbers) {
        
        long answer = 0;
        
        numbers = numbers.replace("zero", "0");
        numbers = numbers.replace("one", "1");
        numbers = numbers.replace("two", "2");
        numbers = numbers.replace("three", "3");
        numbers = numbers.replace("four", "4");
        numbers = numbers.replace("five", "5");
        numbers = numbers.replace("six", "6");
        numbers = numbers.replace("seven", "7");
        numbers = numbers.replace("eight", "8");
        numbers = numbers.replace("nine", "9");
        
        answer = Long.parseLong(numbers);
        
        return answer;
    }
}

replace() 메서드 이용
String replace(CharSequnce target, CharSequence replacement)
문자열을 자신이 바꾸고싶은 문자로 치환

문제 풀이 2

class Solution {
    public long solution(String numbers) {
        
        long answer = 0;
        String[] matchNumbers = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
        
        for(int i = 0; i < matchNumbers.length; i++) {
            numbers = numbers.replaceAll(matchNumbers[i], String.valueOf(i));
        }
        answer = Long.parseLong(numbers);
        
        return answer;
    }
}

replaceAll() 메서드 이용
String replaceAll(String regex, String replcement)
첫 번째 인자값은 변환하고자 하는 대상이 되는 문자열(정규표현식라 부르는 형식의 인자값), 두 번째 인자값은 변환할 문자 값

profile
나만의 무언가를 가진 프로그래머가 되자

0개의 댓글