본문 바로가기
알고리즘/프로그래머스

[프로그래머스 / 숫자 문자열과 영단어 / JAVA]

by KDW999 2023. 2. 13.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제 접근

s 문자열에 zero ~ nine까지 문자열이 포함되어 있다면 replace로 해당 문자열을 1~9로 대체하고 정수형변환으로 answer에 대입

 

class Solution {
    public int solution(String s) {
        int answer = 0;
        
        if(s.contains("zero")) s = s.replace("zero", "0");
        if(s.contains("one")) s = s.replace("one", "1");
        if(s.contains("two")) s = s.replace("two", "2");
        if(s.contains("three")) s =s.replace("three", "3");
        if(s.contains("four")) s = s.replace("four", "4");
        if(s.contains("five")) s = s.replace("five", "5");
        if(s.contains("six")) s = s.replace("six", "6");
        if(s.contains("seven")) s = s.replace("seven", "7");
        if(s.contains("eight")) s = s.replace("eight", "8");
        if(s.contains("nine")) s = s.replace("nine", "9");

        answer = Integer.valueOf(s);
        return answer;
    }
}

 

다른 사람 풀이

s 문자열에 있는 strArr 문자열 배열의 요소를 for문 순서의 숫자로 변경

class Solution {
    public int solution(String s) {
        String[] strArr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
        for(int i = 0; i < strArr.length; i++) {
            s = s.replaceAll(strArr[i], Integer.toString(i));
        }
        return Integer.parseInt(s);
    }
}

댓글