[알고리즘][프로그래머스][JAVA][Python]숫자 문자열과 영단어
문제설명
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
1478 → "one4seveneight"
234567 → "23four5six7"
10203 → "1zerotwozero3"
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
1. Java
class Solution {
public int solution(String s) {
int answer = 0;
String[] str = {"zero","one", "two","three","four","five","six","seven","eight","nine"};
String[] num = {"0","1","2","3","4","5","6","7","8","9"};
for(int i = 0; i<str.length; i++){
s = s.replace(str[i],num[i]);
}
answer = Integer.parseInt(s);
return answer;
}
}
코드설명
-
대응되는 숫자와 영단어를 배열로 선언
-
for문을 통해 str안의 영단어가 주어진 문자열 s 내에 존재할 때 replace함수를 통하여 num안의 대응되는 숫자로 변환
-
변환된 객체는 여전히 문자열이기때문에 정수형으로 변환
테스트 결과
2. Python
def solution(s):
answer = ''
dic = {
'zero' : '0',
'one' : '1',
'two' : '2',
'three' : '3',
'four' : '4',
'five' : '5',
'six' : '6',
'seven' : '7',
'eight' : '8',
'nine' : '9'
}
answer = s
for key, value in dic.items() :
answer = answer.replace(key, value)
return int(answer)
코드 설명
-
대응되는 영단어와 숫자를 dictionary의 key값과 value값으로 선언
-
받은 문자열을 answer이라는 변수에 담기
-
우리가 필요한 것은 key와 value를 한꺼번에 for문을 반복시켜야 하므로 items()를 사용하여 반복
-
answer안에 key값이 있으면 value인 숫자로 변환
-
아직 answer은 문자형이므로 숫자형으로 변환하여 반환
테스트 결과
Author And Source
이 문제에 관하여([알고리즘][프로그래머스][JAVA][Python]숫자 문자열과 영단어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@aok458/알고리즘프로그래머스JAVAPython숫자-문자열과-영단어저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)