[프로그래머스/JAVA] Lv.0 영어가 싫어요

또치·2023년 1월 25일
0

프로그래머스 JAVA

목록 보기
14/20
post-thumbnail

영어가 싫어요

🎯 문제

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

<제한사항>
numbers는 소문자로만 구성되어 있습니다.
numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", 
"eight", "nine" 들이 공백 없이 조합되어 있습니다.
1 ≤ numbers의 길이 ≤ 50
"zero"는 numbers의 맨 앞에 올 수 없습니다.
numbersresult
"onetwothreefourfivesixseveneightnine"123456789
"onefourzerosixseven"14067

답안


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

🎲 과정

약간 이게 맞나 싶은 문제였어...모든 조건 줘서 해당 문자가지고 있으면 치환시켜주는 것 밖에 생각이 안났다.
그래서 하나하나 해서 풀긴했는데 좀 구리다고 생각은 했어...
다른 사람들 푼거 보니까 애초에 저 문자열들을 다 넣은 배열을 하나 만들어서 반복문 돌려가지고 푸시더라...그게 맞는거 같아...저렇게 하나하나 다 쓰면 코드치는 의미가 없는것같기도...모르겠다...

String[] array= {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for(int i=0; i<array.length; i++{
	numbers=numbers.replaceAll(array[i],i);
}

요렇게

0개의 댓글