티스토리 뷰

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

 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr

 

[프로그래머스][C++][Java] 숫자 문자열과 영단어

 

 

C++

#include <string>
#include <vector>

using namespace std;

string num[10] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight","nine" };

int solution(string s) {
	int answer = 0;

	for (int i = 0; i < s.length(); i++) {
		if (s[i] >= '0' && s[i] <= '9') {
			answer = answer * 10 + (s[i] - '0');
			continue;
		}
		for (int j = 0; j < 10; j++) {
			if (!s.compare(i, num[j].length(), num[j])) {
				answer = answer * 10 + j;
				i += num[j].length() - 1;
				break;
			}
		}
	}
    
	return answer;
}

 

 

Java

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

        for (int i = 0; i < 10; i++) {
            s = s.replace(num[i], Integer.toString(i));
        }

        answer = Integer.parseInt(s);

        return answer;
    }
}

 

댓글