티스토리 뷰
문제
https://programmers.co.kr/learn/courses/30/lessons/81301
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
- 1478 → "one4seveneight"
- 234567 → "23four5six7"
- 10203 → "1zerotwozero3"
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다.
0 | zero |
1 | one |
2 | two |
3 | three |
4 | four |
5 | five |
6 | six |
7 | seven |
8 | eight |
9 | nine |
제한사항
- 1 ≤ s의 길이 ≤ 50
- s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.
- return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다.
입출력 예
s | result |
"one4seveneight" | 1478 |
"23four5six7" | 234567 |
"2three45sixseven" | 234567 |
"123" | 123 |
쉬운 문제이지만, replace함수가 중복되는 것을 필터링 하지 못하기 때문에 정규표현식 변수를 만들어서 해결했다.
function solution(s) {
const sDictionary = { 'zero': 0, 'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9 }
var answer = 0;
for (let i = 0; i < Object.keys(sDictionary).length; i++) {
let letter = Object.keys(sDictionary)[i]
// 아래의 방식으로 정규표현식 오브젝트 변수를 담아야 변수를 정규표현식에 사용할 수 있다.
let regexAllCase = new RegExp(letter, "gi");
if (s.includes(Object.keys(sDictionary)[i])) {
s = s.replace(regexAllCase, Object.values(sDictionary)[i])
}
}
answer = parseInt(s);
return answer;
}
반응형
'Basic_Studies > 알고리즘 문제풀이' 카테고리의 다른 글
[JS] 프로그래머스 - 체육복 (0) | 2021.10.13 |
---|---|
[백준] 7576: 토마토 (파이썬 / 해설포함) (3) | 2021.08.16 |
[알고리즘] LeetCode - 152 : Maximum Product Subarray (0) | 2021.03.30 |
[LeetCode] 121. Best Time to Buy and Sell Stock (0) | 2021.03.23 |
[파이썬] 백준 - 1463: 1로 만들기 (매우 자세한 해설 포함) (10) | 2021.02.20 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- nuxt 공식문서
- bs4 크롤링
- 파이썬 flask
- 글래스모피즘 애니메이션 구현
- dvd 효과
- nextjs 스크롤
- 리액트 라우터
- 글래스모피즘 구현
- next.js 리다이렉트
- 파이썬 크롤링
- 파이썬 정렬
- 리액트
- 리액트 컴포넌트
- Til
- 움직이는 글래스모피즘
- react router
- nextjs 파라미터 넘기기
- css marquee
- 리액트 파라미터 넘기기
- 화이팅
- 백준 10989 파이썬
- 리액트 스크롤
- getserversideprops redirect
- 자바스크립트
- 카페음료테스트
- nuxt 공식문서 한글
- 10989 파이썬
- vscode venv
- css 글래스모피즘
- NextJS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함