알고리즘/programmers
[Javascript] 프로그래머스 : 숫자 문자열과 영단어
suwonieee
2023. 12. 28. 13:51
https://school.programmers.co.kr/learn/courses/30/lessons/81301
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
var dict = {
"zero": 0,
"one": 1,
"two": 2,
"three": 3,
"four": 4,
"five": 5,
"six": 6,
"seven": 7,
"eight": 8,
"nine": 9
};
function isNumber(char) {
var numericPattern = /^[0-9]$/;
return numericPattern.test(char);
}
function solution(s) {
var answer = '';
var idx = 0;
while (idx < s.length) {
if (isNumber(s[idx])) {
answer += s[idx];
idx += 1;
} else {
for (let ed = idx + 1; ed <= s.length; ed++) {
var temp = s.slice(idx, ed);
if (dict[temp] !== undefined) {
answer += dict[temp];
idx = ed;
break;
}
}
}
}
return parseInt(answer);
}
Python으로도 풀었던 문제. 당분간은 python으로 풀었던 문제 js로 풀어가며 감 잡고 싶다
Python 풀이는...
더보기
왕 간단함
dic = {
'zero' : '0',
'one': '1',
'two': '2',
'three': '3',
'four': '4',
'five': '5',
'six': '6',
'seven': '7',
'eight': '8',
'nine': '9'
}
def solution(s):
answer = ''
idx = 0
while idx < len(s):
if s[idx].isdigit():
answer += s[idx]
idx += 1
else:
for end in range(idx + 1, len(s) + 1):
tmp = s[idx:end]
if tmp in dic:
answer += dic[tmp]
idx = end
break
return int(answer)